用scala实现wordcount的三种方式

声明一个数组

val arr = Array("hello fandf fandf angelbaby yangmi hello")

第一种

arr.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.size)).toList.sortBy(_._2).reverse

第二种

arr.flatMap(_.split(" ")).map((_,1)).groupBy(_._1).mapValues(_.size)

第三种

arr.flatMap(_.split(" ")).map((_, 1)).groupBy(_._1).mapValues(_.foldLeft(0)(_+_._2))

建议使用第三种,因为前两种都是用的size,但是如果里面的值不是1呢?

你可能感兴趣的:(用scala实现wordcount的三种方式)