Como encontrar medianas e quantis usando o Spark

Como posso encontrar a mediana de umRDD de números inteiros usando um método distribuído, IPython e Spark? oRDD é de aproximadamente 700.000 elementos e, portanto, muito grande para coletar e encontrar a mediana.

Esta pergunta é semelhante a esta pergunta. No entanto, a resposta para a pergunta está usando Scala, que eu não sei.

Como posso calcular a mediana exata com o Apache Spark?

Usando o pensamento da resposta Scala, estou tentando escrever uma resposta semelhante em Python.

Eu sei que primeiro quero classificar oRDD. Eu não sei como. eu vejo osortBy (Classifica este RDD pelo dadokeyfunc) esortByKey (Classifica issoRDD, que é assumido como composto por (chave, valor) pares.) métodos. Eu acho que ambos usam o valor da chave e meuRDD possui apenas elementos inteiros.

Primeiro, eu estava pensando em fazermyrdd.sortBy(lambda x: x)?Em seguida, vou encontrar o comprimento do rdd (rdd.count())Finalmente, quero encontrar o elemento ou 2 elementos no centro do rdd. Também preciso de ajuda com este método.

EDITAR:

Eu tive uma ideia Talvez eu possa indexar meuRDD e, em seguida, chave = índice e valor = elemento. E então eu posso tentar classificar por valor? Não sei se isso é possível porque existe apenas umasortByKey método.

questionAnswers(4)

yourAnswerToTheQuestion