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)
}
}