合并Map
对两个Map进行词频统计整合
val map1 = Map(("a",2),("b",5),("c",7),("d",99))
val map2 = mutable.Map(("a",1),("b",2),("c",7),("e",1))
val count: mutable.Map[String, Int] = map1.foldLeft(map2)((resMap, kv) => {
val key = kv._1
val value = kv._2
resMap(key) = resMap.getOrElse(key, 0) + value
resMap
})
println(count)
普通 WordCount 案例
给定的集合中统计单词出现次数前三的单词
object wordCount {
def main(args: Array[String]): Unit = {
val arr = List(
"scala",
"java",
"hello hadoop from java",
"hello spark from scala",
"hello flink from scala"
)
val splitList: List[String] = arr.flatMap(item => item.split(" "))
val groupMap: Map[String, List[String]] = splitList.groupBy(item => item)
val countMap: Map[String, Int] = groupMap.map(item => (item._1, item._2.length))
val res: List[(String, Int)] = countMap.toList.sortWith((a, b) => a._2 > b._2).take(3)
println(res)
}
}