package com.shujia.core
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}
object Demo01WordCount {
def main(args: Array[String]): Unit = {
//初始化Spark环境
//创建Spark配置对象
val conf: SparkConf = new SparkConf()
//配置任务的名称
conf.setAppName("Demo01WordCount")
//配置Spark的运行方式 local表示本地运行
conf.setMaster("local")
//1、创建Spark上下文对象 即Spark的入口
val sc: SparkContext = new SparkContext(conf)
//2、读取文件 将文件构建成RDD
val linesRDD: RDD[String] = sc.textFile("Spark/data/words.txt")
//3、对每行数据进行切分 并对切分后的结果进行扁平化处理
//flatMap等其他跟RDD相关的方法在Spark中统称为“算子”
val wordsRDD: RDD[String] = linesRDD.flatMap(line => line.split(","))
//4、按照单词进行分组
val groupRDD: RDD[(String, Iterable[String])] = wordsRDD.groupBy(word => word)
//5、统计每个单词的数量 并整理最后输出的结果
val wordCntRDD: RDD[String] = groupRDD.map(kv => s"${kv._1}, ${kv._2.size}")
//6、打印或保存最后的结果
wordCntRDD.foreach(println)
wordCntRDD.saveAsTextFile("Spark/data/wordCnt")
}
}
spark, 10
hadoop, 10
java, 20



