object WordCount {
def main(args: Array[String]): Unit = {
val lines = List("hello tom hello jerry", "hello jerry", "hello kitty")
val words = lines.flatMap(_.split(" "))
val wordAndOne = words.map((_, 1))
val grouped = wordAndOne.groupBy(_._1)
val wordCount = grouped.mapValues(_.foldLeft(0)(_ + _._2))
val sortedWord = wordCount.toList.sortBy(_._2)
sortedWord.foreach(println)
}
}
切分单词
1.1 对每一行即每个字符串进行切割
1.2 对切分后的单词平铺
以上两步可简化为:
将每个单词计数为1
将单词作为key进行分组
统计每个单词出现的次数
欠妥方法:此种做法不适合局部先进行单词统计,再整体单词统计,因为如果局部某个单词计数不是1,那么再这样做,结果错误
更好的方法:
对统计的单词进行排序
如果降序排列