Как найти медиану целых чисел RDD
, используя распределенный метод, IPython и Spark? RDD
составляет приблизительно 700 000 элементов и поэтому слишком велик для сбора и поиска медианы.
Этот вопрос похож на этот вопрос. Однако ответ на вопрос: Scala, о котором я не знаю.
Как рассчитать точную медианную с Apache Spark?
Используя мышление для ответа Scala, я пытаюсь написать аналогичный ответ в Python.
Я знаю, что сначала хочу отсортировать RDD
. Я не знаю как. Я вижу sortBy
(Сортирует этот RDD по данным keyfunc
) и sortByKey
(Сортирует этот RDD
, который предполагается состоять из (пары, значение).). Я думаю, что оба используют ключевое значение, а мой RDD
имеет только целые элементы.
- Во-первых, я думал делать
myrdd.sortBy(lambda x: x)
? - Далее я найду длину rdd (
rdd.count()
). - Наконец, я хочу найти элемент или 2 элемента в центре rdd. Мне также нужна помощь в этом методе.
EDIT:
У меня была идея. Может быть, я могу индексировать мой RDD
, а затем key = index и value = element. И тогда я могу попытаться сортировать по значению? Я не знаю, возможно ли это, потому что существует только метод sortByKey
.