Как найти медиану и квантили с помощью 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
метод.