Scala(Spark Shell)方法
如果你在 spark-shell
(Scala 环境)中运行:
1. 启动 Spark Shell
spark-shell
(确保 Spark 已安装,PATH
配置正确)
2. 执行单词统计
// 1. 读取文件(确保路径正确!)
val lines = sc.textFile("file:///home/xdt/桌面/data.txt")
// 2. 拆分单词 + 统计
val wordCounts1 = lines.flatMap(line => line.split(" ")) // 按空格分割
val wordCounts2 = wordCounts1.map(word => (word, 1)) // 每个单词计数 1
val wordCounts3 = wordCounts2.reduceByKey(_ + _) // 相同单词累加
// 3. 显示结果(前20个)
wordCounts3.take(20).foreach(println)
// 4. 保存结果
wordCounts3.saveAsTextFile("file:///home/xdt/桌面/wordcount_output")
3. 检查输出
-
控制台:会打印前 20 个单词的统计结果。
-
文件:结果保存在
~/桌面/wordcount_output/part-00000
。
注意路径写法,要写自己电脑上的路径。
上面是文件来源于本地的情况,如果文件位于HDFS里,要先把HDFS启动起来。
印象里好像是start-all.sh
IntelliJ IDEA 中运行
1. 安装必要工具
-
IntelliJ IDEA(建议使用 Ultimate 版,Community 版也支持 Scala)
-
Scala 插件(在 IDEA 中安装)
-
JDK 8/11(Spark 3.x 支持 JDK 8/11)
-
Scala SDK(建议 2.12.x,与 Spark 3.x 兼容)
2. 创建 Scala 项目
可以通过plugin下载scala,来创建scala项目
步骤 1:打开 IDEA,新建项目
-
File → New → Project
-
选择 Scala → IDEA(或 SBT 项目)
-
设置:
-
Project SDK:选择 JDK(如 JDK 11)
-
Scala SDK:点击 "Create" 按钮,选择 Scala 版本(如 2.12.15)
-
不要忘记导Scala SDK!!!
步骤 2:配置项目结构
-
项目名称:
SparkWordCount
-
项目路径:选择你的工作目录
3. 添加 Spark 依赖
方法 1:使用 SBT(推荐)
1.在项目根目录下找到 build.sbt
文件,添加以下内容:
name := "SparkWordCount"
version := "1.0"
scalaVersion := "2.12.15"
libraryDependencies += "org.apache.spark" %% "spark-core" % "3.3.0"
2.等待 IDEA 自动加载依赖(或手动点击 Reload All SBT Projects)。
确保 Scala 版本匹配(Spark 3.3.0 需要 Scala 2.12.x)
方法 2:手动添加 JAR
1.下载 Spark 的预编译包:
wget https://archive.apache.org/dist/spark/spark-3.3.0/spark-3.3.0-bin-hadoop3.tgz
tar -xzf spark-3.3.0-bin-hadoop3.tgz
2.在 IDEA 中:
-
File → Project Structure → Libraries → + → Java
-
添加 Spark 的 JAR 文件:
-
spark-3.3.0-bin-hadoop3/jars/*.jar
-
这里主包直接添加的炸包 下面是主包的spark的路径
/opt/spark-3.5.5-bin-hadoop3/jars/spark-core_2.12-3.5.5.jar
否则无法导入
org.apache.spark
4. 创建 WordCount 程序
步骤 1:新建 Scala 类
-
右键
src/main/scala
→ New → Scala Class -
输入名称
WordCount
,类型选择Object
步骤 2:编写代码
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
// 1. 创建 Spark 配置
val conf = new SparkConf()
.setAppName("WordCount")
.setMaster("local[*]") // 本地模式
// 2. 初始化 SparkContext
val sc = new SparkContext(conf)
try {
// 3. 读取文件(替换为你的路径)
val lines = sc.textFile("file:///home/xdt/桌面/data.txt")
// 4. 单词统计
val wordCounts = lines
.flatMap(_.split(" "))
.map((_, 1))
.reduceByKey(_ + _)
// 5. 打印结果
wordCounts.take(20).foreach(println)
// 6. 保存结果
wordCounts.saveAsTextFile("file:///home/xdt/桌面/wordcount_output")
} finally {
// 7. 关闭 SparkContext
sc.stop()
}
}
}
5. 运行程序
方法 1:直接运行
-
右键
WordCount.scala
→ Run 'WordCount' -
查看控制台输出和结果文件。
方法 2:打包后提交
-
File → Project Structure → Artifacts → + → JAR → From modules
-
选择主类为
WordCount
,构建 JAR。 -
通过
spark-submit
运行:
spark-submit --class WordCount SparkWordCount.jar