Как найти медиану целых чисел 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.