在交互式界面:
List("hadoop hdfs mr hive","hdfs hive hbase storm kafka","hiv e hbase storm kafka spark").flatMap(_.split(" ")).map((_, 1)).groupBy(_._1).map(x => (x._1, x._2.size)).toList.sortBy(_._2).reverse.foreach(println)
可以成功执行
在idea中会触发编译错误,提示 Type mismatch
需要改成
List("hadoop hdfs mr hive","hdfs hive hbase storm kafka","hiv e hbase storm kafka spark")
.flatMap(_.split(" "))
.map((_, 1))
.groupBy(_._1)
.map{
case item: (String, List[(String, Int)]) => (item._1, item._2.size)
}.toList.sortBy(_._2).reverse.foreach(println)
才可以
差距就是在 .map(x => (x._1, x._2.size)) 这里,idea不会自动判断类型吗?
不明白为什么,idea有bug?还是我哪里没有设置好?