合并Map

对两个Map进行词频统计整合

  1. val map1 = Map(("a",2),("b",5),("c",7),("d",99))
  2. val map2 = mutable.Map(("a",1),("b",2),("c",7),("e",1))
  3. val count: mutable.Map[String, Int] = map1.foldLeft(map2)((resMap, kv) => {
  4. val key = kv._1
  5. val value = kv._2
  6. resMap(key) = resMap.getOrElse(key, 0) + value
  7. resMap
  8. })
  9. println(count)

image.png

普通 WordCount 案例

给定的集合中统计单词出现次数前三的单词

  1. object wordCount {
  2. def main(args: Array[String]): Unit = {
  3. val arr = List(
  4. "scala",
  5. "java",
  6. "hello hadoop from java",
  7. "hello spark from scala",
  8. "hello flink from scala"
  9. )
  10. val splitList: List[String] = arr.flatMap(item => item.split(" "))
  11. val groupMap: Map[String, List[String]] = splitList.groupBy(item => item)
  12. val countMap: Map[String, Int] = groupMap.map(item => (item._1, item._2.length))
  13. val res: List[(String, Int)] = countMap.toList.sortWith((a, b) => a._2 > b._2).take(3)
  14. println(res)
  15. }
  16. }