У меня есть RDD
со следующей структурой:Спарк Scala: GroupByKey и сортировки
val rdd = RDD[ (category: String, product: String, score: Double) ]
Моя цель состоит в том, чтобы group
данных, основанных на категории, а затем для каждой категории sort
w.r.t. оценка Tuple 2 (product, score)
. На данный момент мой код:
val result = rdd.groupByKey.mapValues(v => v.toList.sortBy(-_._2))
Это оказывается очень дорогостоящей операцией для данных, которые у меня есть. Я ищу улучшить производительность, используя альтернативный подход.
Почему это так важно, чтобы разобраться? –
Это может помочь, если вы можете дать грубые размеры - сколько предметов в исходном RDD, сколько категорий, сколько предметов на каждую категорию в среднем. Как долго это происходит, на каком оборудовании? Как быстро вам это нужно? – DNA
Как вы планируете использовать отсортированные данные? Планируете ли вы перебирать все из них, просто хотите найти верхнюю? – marios