习题 4:Spark WordCount(经典)

题目:使用 Spark RDD 实现 WordCount,输出到文件。

import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("wordcount").setMaster("local[*]")
    val sc = new SparkContext(conf)
    val rddlines = sc.textFile("input/word.txt", 1)
    val rddwords = rddlines.flatMap(line => line.trim().split(" "))
    val rddpair = rddwords.map(word => (word, 1))
    val rddwc = rddpair.reduceByKey((x, y) => x + y)
    rddwc.collect().foreach(println)

    // 保存到文件:自动删除旧输出
    val outpath = new Path("out")
    if (fs.exists(outpath)) fs.delete(outpath, true)
    rddwc.saveAsTextFile("out")
  }
}