Я создал СДР ключа / значений следующим образом:
RDD[(String, Int)]: rdd.map(row => row.split(1) -> 1).reduceByKey(_ + _)
Как я могу получить пять лучших элементов на основе значений?
Вы можете использовать rdd.top, чтобы избежать полной сортировки rdd:
rdd.top
rdd.top(5)(Ordering[Int].on(_._2))
Это определяет порядок значений и делает один O(n) проход по rdd, чтобы получить 5 лучших элементов на значение.
O(n)