需求分析:
读取文件所有内容,统计每个单词出现的次数
首先介绍一下如何用Scala在本地运行WordCount
第一步,首先要构建Application的运行环境,Driver创建一个SparkContext
1
2
3
4val conf = new SparkConf()
conf.setAppName("WordCount") //设置作业名称
.setMaster("local") //设置在本地运行
val sc = new SparkContext(conf) //通过Conf参数创建一个SparkContext第二步,加载数据并转化成RDD
1
val lineRDD = sc.textFile("HDFS路径或者磁盘文件的路径")
第三步,对数据进行切割,把一行数据切成一个个单词
1
val wordsRDD = lineRDD.flatMap(_.split(" ")) //flatMap使用高阶函数,这里对空格进行分割,处理后形成新的RDD
第四步,迭代words,把每个word转化成(word,1)的键值对形式
1
val pairRDD = wordsRDD.map((_,1))
第五步,根据Key进行分组聚合统计
1
val wordCountRDD = pairRDD.reduceByKey(_ + _)
第六步,打印结果并关闭SparkContext
1
2wordCountRDD.foreach(wordCount=>println(wordCount._1+"--"+wordCount._2))
sc.stop()