Как найти медиану и квантили с помощью Spark

Как я могу найти медиануRDD целых чисел, использующих распределенный метод, IPython и Spark?RDD приблизительно 700 000 элементов и, следовательно, слишком большой, чтобы собрать и найти медиану.

Этот вопрос похож на этот вопрос. Однако ответом на вопрос является использование Scala, которого я не знаю.

Как я могу рассчитать точную медиану с Apache Spark?

Используя мышление для ответа Scala, я пытаюсь написать аналогичный ответ на Python.

Я знаю, что сначала хочу отсортироватьRDD, Я не знаю как. Я вижуsortBy (Сортирует этот СДР по заданномуkeyfunc) а такжеsortByKey (Сортирует этоRDD, который, как предполагается, состоит из (ключ, значение) пар.) методов. Я думаю, что оба используют значение ключа и мойRDD имеет только целые элементы

Во-первых, я думал о том, чтобы делатьmyrdd.sortBy(lambda x: x)?Далее я найду длину rdd (rdd.count()).Наконец, я хочу найти элемент или 2 элемента в центре rdd. Мне нужна помощь с этим методом тоже.

РЕДАКТИРОВАТЬ:

У меня была идея. Может быть, я могу проиндексировать мойRDD а затем ключ = индекс и значение = элемент. И тогда я могу попытаться отсортировать по значению? Я не знаю, возможно ли это, потому что есть толькоsortByKey метод.

Ответы на вопрос(4)

Ваш ответ на вопрос