【发布时间】:2015-02-10 20:59:34
【问题描述】:
我无法在 Array of int 和 Strings 中获得最上面的单词。
请参阅下面的数组和所需的输出: 考虑 n 是一个 RDD,并建议我获取输出所需的函数。
scala> n.take(10)
res3: Array[(Int, String)] = Array((4,Hi how are you ,how), (2,hello good good to hear good))
O/P : Array((4,how),(2,good)) // Ist 行的 Top word 怎么样 .. good 是第二行的 top word .
我们可以使用下面的代码来获取唯一最热门的单词,但我想在每一行中都获得最热门的单词。
val msg = n.map{case(val1, val2) => (val2).mkString("")}
val words =msg.flatMap(x => x.split(" "))
val result = words.map(x => (x, 1)).reduceByKey((x, y) => x + y)
val sortReuslts=result.sortBy(x => (-x._2,x._1))
谢谢:)
【问题讨论】:
标签: scala apache-spark scala-collections rdd