修改 Maven 项目中的 POM 文件,增加 Spark 框架的依赖关系,使用时请注意对应版本。
<dependencies>
<!--spark依赖,注意版本号-->
<dependency>
<groupId>org.apache.spark</groupId>
<artifactId>spark-core_2.12</artifactId>
<version>3.0.0</version>
</dependency>
</dependencies>
代码:
import org.apache.spark.rdd.RDD
import org.apache.spark.{
SparkConf, SparkContext}
object Spark02_WordCount {
def main(args: Array[String]): Unit = {
// 1.建立和Spark框架的连接
var sparkConf = new SparkConf().setMaster("local").setAppName("WordCount")
var sc = new SparkContext(sparkConf)
// 2.执行业务操作
// 2.1读取文件,获取一行一行的数据
val lines:RDD[String] = sc.textFile("datas")
// 2.2将每行数据切分,形成一个一个的单词
val words:RDD[String] = lines.flatMap(_.split(" "))
val word2One: RDD[(String, Int)] = words.map(
word => (word, 1)
)
// 2.3 4 spark可以将分组和聚合使用同一个方法实现
// word2One.reduceByKey((x,y) => {x+y})
// word2One.reduceByKey((x,y) => x+y)
val word2Count: RDD[(String, Int)] = word2One.reduceByKey(_ + _)
// 2.5打印结果
val tuples: Array[(String, Int)] = word2Count.collect()
tuples.foreach(println)
//3. 关闭连接
sc.stop()
}
}
其中datas下面分别有两个txt文件(1.txt与2.txt),文件里面保存了需要统计的文本,datas文件夹要保存到项目的根目录下。
运行结果会打印出每个单词及其出现的个数,每个单词及其出现个数组成一个元组。