用SparkCore知识编写一个词频统计程序,越简单越好,用scala语言编写,用上flatmap方法
时间: 2024-03-26 18:39:56 浏览: 76
好的,下面是一个基于SparkCore的词频统计程序,使用Scala语言实现,用到了flatMap方法:
```scala
import org.apache.spark.{SparkConf, SparkContext}
object WordCount {
def main(args: Array[String]): Unit = {
val conf = new SparkConf().setAppName("Word Count").setMaster("local")
val sc = new SparkContext(conf)
val inputRDD = sc.textFile("input.txt")
val wordsRDD = inputRDD.flatMap(line => line.split(" "))
val wordCountRDD = wordsRDD.map(word => (word, 1)).reduceByKey(_ + _)
wordCountRDD.foreach(println)
sc.stop()
}
}
```
这个程序假设输入文件名为 `input.txt`,它将文件中的每一行转换成一个字符串,并按空格拆分成单词。然后它使用 `flatMap` 方法将所有单词拆分成多个元素,从而生成一个包含所有单词的 RDD。接着,程序将每个单词转换成一个键值对 `(word, 1)`,其中 `1` 是该单词的出现次数。最后,程序通过 `reduceByKey` 操作将所有相同单词的键值对合并,得到每个单词的总出现次数。程序输出每个单词和它的出现次数,最后关闭 `SparkContext`。
阅读全文