Предполагая, что вы введете:
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
.