Devuelve RDD de los mayores valores de N de otro RDD en SPARK
Estoy tratando de filtrar un RDD de tuplas para devolver las N tuplas más grandes basadas en valores clave. Necesito que el formato de devolución sea un RDD.
Entonces el RDD:
[(4, 'a'), (12, 'e'), (2, 'u'), (49, 'y'), (6, 'p')]
filtrado para las 3 claves más grandes debe devolver el RDD:
[(6,'p'), (12,'e'), (49,'y')]
Haciendo unsortByKey()
y entoncestake(N)
devuelve los valores y no da como resultado un RDD, por lo que no funcionará.
Podría devolver todas las claves, ordenarlas, encontrar el enésimo valor más grande y luego filtrar el RDD por valores de clave mayores que eso, pero eso parece muy ineficiente.
Cuál sería la mejor forma de hacer esto?