yunfenglee 2020-04-19
package com.atguigu.bigdata.spark import org.apache.spark.rdd.RDD import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Array[String]): Unit = { // 1.local模式 创建 SparkConf对象, 并设置 App名字---设定spark计算框架的部署环境 val config: SparkConf = new SparkConf().setMaster("local[*]").setAppName("WordCount") // 2. 创建SparkContext上下文对象 val sc = new SparkContext(config) //println(sc) //测试当前环境是否有问题 //读取文件,将文件内容一行一行读取 var lines: RDD[String] = sc.textFile("in/word.txt") //将一行行的数据分解成一个一个的单词 val words: RDD[String] = lines.flatMap(_.split(" ")) //将单词数据进行结构的转换----方便统计 val wordToOne: RDD[(String, Int)] = words.map((_, 1)) //对转换结构后的数据进行分组聚合 val wordToSum: RDD[(String, Int)] = wordToOne.reduceByKey(_ + _) //获得统计结果 var result: Array[(String, Int)] = wordToSum.collect() //将结果打印到控制台 result.foreach(println) } }