需求分析:

读取文件所有内容,统计每个单词出现的次数


首先介绍一下如何用Scala在本地运行WordCount

  1. 第一步,首先要构建Application的运行环境,Driver创建一个SparkContext

    1. val conf = new SparkConf()
    2. conf.setAppName("WordCount") //设置作业名称
    3. .setMaster("local") //设置在本地运行
    4. val sc = new SparkContext(conf) //通过Conf参数创建一个SparkContext
  2. 第二步,加载数据并转化成RDD

    val lineRDD = sc.textFile("HDFS路径或者磁盘文件的路径")
    
  3. 第三步,对数据进行切割,把一行数据切成一个个单词

    val wordsRDD = lineRDD.flatMap(_.split(" ")) //flatMap使用高阶函数,这里对空格进行分割,处理后形成新的RDD
    
  4. 第四步,迭代words,把每个word转化成(word,1)的键值对形式

    val pairRDD = wordsRDD.map((_,1))
    
  5. 第五步,根据Key进行分组聚合统计

    val wordCountRDD = pairRDD.reduceByKey(_ + _)
    
  6. 第六步,打印结果并关闭SparkContext

    wordCountRDD.foreach(wordCount=>println(wordCount._1+"--"+wordCount._2))
    sc.stop()