一、先在idea中添加Scala插件
二、使用Maven創建新項目
1.啟動idea,選擇新建項目。之后的設置如下:
2.將Scala添加到全局庫中(注意:Scala的版本不宜太高,最好是2-12.否則后面會報下面這個錯誤
E:\tool接口\SparkCore_01\src\main\scala\WordCount.scala:16:9
illegal cyclic inheritance involving trait Iterableval counts = textFiles
3.設置maven依賴項。修改pom.xml文件,添加如下:
<!-- 添加依賴: scala-library spark-core--><dependencies><dependency><groupId>org.apache.spark</groupId><artifactId>spark-core_2.12</artifactId><version>3.1.2</version></dependency><dependency><groupId>org.scala-lang</groupId><artifactId>scala-library</artifactId><version>2.12.15</version></dependency></dependencies>
?4.下載依賴。添加完成之后,刷新Maven,它會幫助我們去下載依賴。
5.編寫代碼。修改文件夾的名字。(注意:是在重構里面有重命名)
6.新建Scala類。如果這里沒有看到Scala類的選項,就去檢查第2步。(如果沒有出現scala類,請再次添加全局庫。)
7.選擇Object,輸入WordCount
8.編寫代碼如下
import org.apache.spark.{SparkConf, SparkContext}
object WordCount{def main(args: Array[String]): Unit = {// 配置 Spark 應用程序val conf = new SparkConf().setAppName("WordCount").setMaster("local[*]")// 創建 SparkContext 對象val sc = new SparkContext(conf)// 讀取目錄下的所有文本文件val textFiles = sc.wholeTextFiles("input")// 提取文本內容并執行 WordCount 操作val counts = textFiles.flatMap { case (_, content) => content.split("\\s+") }.map(word => (word, 1)).reduceByKey(_ + _)// 將所有分區的數據合并成一個分區val singlePartitionCounts = counts.coalesce(1)// 保存結果到文件singlePartitionCounts.saveAsTextFile("output")// 停止 SparkContextsc.stop()}
}
9.準備待統計的詞頻文件。在項目根目錄下建立文件夾input,并穿件兩個文本文件:word1.txt, word2.txt。文本內容隨意。
10.運行代碼。點擊運行代碼。(紅色無所謂,只要后面出現:進程已結束,退出代碼為 0。這句就是對的。)
11.生成結果如下。
?