前一篇文章中已經完成了Scala開發環境的搭建,并且在IDEA中安裝好了Scala 插件。本文將進行詞頻統計Spark應用的Scala版本開發。
一、創建新的Maven模塊
在現有的父項目中,創建一個新的scala 模塊,用于編寫詞頻統計Spark應用,如圖所示。選擇左側的Maven(或者下面的Scala),點擊【Next】按鈕。
然后,輸入模塊名稱(Name):ScalaWordCount,如圖所示,點擊【Finish】按鈕就創建好了。
二、將scala框架添加到項目
在IDEA啟動后進入的界面中,可以看到界面左側的項目界面,已經有一個名稱為WordCount的工程。請在該工程名稱上右鍵單擊,在彈出的菜單中,選擇Add Framework Surport 。
在彈出的Add Frameworks Support 窗口中,左側有一排可勾選項,找到scala,勾選即可。
三、添加spare-core依賴包
在ScalaWordCount 模塊的pom.xml 文件中,添加spare-core依賴項,如下所示:
<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.2.1</version></dependency>
{!– PGC_COLUMN –}
<version>3.2.1</version></dependency>
注意:選擇的scala版本,需要和本地環境中的scala 版本保持一致。如果不一致,在編譯的時候會報錯。
四、創建Scala應用
在ScalaWordCount 子模塊中,新建包名:com.rickie.spark3,如圖所示。然后,創建一個新的Scala Class。
Name 中輸入ScalaWordCount,類型選擇Object。
Scala類中沒有Java那樣的靜態成員。Scala使用 object 關鍵字定義單例對象(Singleton Object)。單例對象的定義和類定義類似,只是用object關鍵字替換了class關鍵字。
如果對Scala 語句有學習興趣,可以訪問《Scala開發快速入門》技術專欄。該專欄適合想要快速入門Scala語言,基于Spark/Flink進行大數據開發的讀者。
ScalaWordCount 的完整代碼如下所示:
package com.rickie.spark3import org.apache.spark.{SparkConf, SparkContext}object ScalaWordCount { def main(args: Array[String]): Unit = { val inputFile = \"./data/wordcount.txt\" val conf = new SparkConf().setAppName(\"Scala Word Count\").setMaster(\"local\") val sc = new SparkContext(conf) val textFile = sc.textFile(inputFile).cache() val wordCount = textFile.flatMap(line => line.split(\"s \")) .map(word => (word, 1)) .reduceByKey((x, y) => x y) wordCount.foreach(println) sc.stop() }}
和之前Java版本的代碼相比,代碼簡潔很多。
五、啟動ScalaWordCount
啟動ScalaWordCount中的main()方法,正常運行之后,在Console控制臺可以看到如下輸出結果:
版權聲明:本文內容由互聯網用戶自發貢獻,該文觀點僅代表作者本人。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如發現本站有涉嫌抄襲侵權/違法違規的內容, 請發送郵件至 舉報,一經查實,本站將立刻刪除。