一、先在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 Iterable
val counts = textFiles
3.设置maven依赖项。修改pom.xml文件,添加如下:
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.编写代码如下
Scala
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")
// 停止 SparkContext
sc.stop()
}
}
9.准备待统计的词频文件。在项目根目录下建立文件夹input,并穿件两个文本文件:word1.txt, word2.txt。文本内容随意。

10.运行代码。点击运行代码。(红色无所谓,只要后面出现:进程已结束,退出代码为 0。这句就是对的。)

11.生成结果如下。
