我需要在文本文件中找到最常见的“不常见”字样。我有一个常用单词列表和我文件中最常用单词的地图。
假设我有
val commonWords = List("the","a","I","is")
和地图
val mostUsedWordsFromTextFile
我怎样才能在地图上覆盖mostUsedWordsFromTextFile,直到我在列表commonWords中找到而不是这个词?
答案 0 :(得分:1)
假设您的输入是:
val input = RDD(("hello", 4), ("the", 2), ("world", 6))
然后你可以:
这样:
val commonWords = Set("the", "a", "I", "is")
val result = input
.filter { case (word, count) => !commonWords.contains(word) } // RDD(("hello", 4), ("world", 6))
.takeOrdered(1)(Ordering[Int].on { case (word, count) => -count }) // Array(("world", 6))
.head // ("world", 6)
._1 // world
有关在maxBy
上实施RDD
的不同方式,请参阅How to find max value in pair RDD?
。