按照MapReduce思想,进行单词计数
1.首先声明数组
valarray=Array("you,jump","i,jump")
2.将数组按照“,”切分
scala>array.flatMap(_.split(","))
res13: Array[String] = Array(you, jump, i,jump)
3.将切割好的数组,组织成k-v的形式
scala>array.flatMap(_.split(",")).map((_,1))
res14: Array[(String, Int)] =Array((you,1), (jump,1), (i,1), (jump,1))
4.按照k进行分组
scala>array.flatMap(_.split(",")).map((_,1)).groupBy(_._1)
res15: scala.collection.immutable.Map[String,Array[(String,Int)]] = Map(jump -> Array((jump,1), (jump,1)), you -> Array((you,1)), i-> Array((i,1)))
5.将分好组的数据进行计数处理
scala>array.flatMap(_.split(",")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.length))
res16:scala.collection.immutable.Map[String,Int] = Map(jump -> 2, you -> 1, i-> 1)
6.转换成List,进行排序
scala>array.flatMap(_.split(",")).map((_,1)).groupBy(_._1).map(t=>(t._1,t._2.length)).toList.sortBy(_._2)
res17: List[(String, Int)] = List((you,1),(i,1), (jump,2))