TakeSolded Pyspark descendente

Me gustaría ordenar los pares K / V por valores y luego tomar los cinco valores más grandes. Logré hacer esto al revertir K / V con el primer mapa, ordenar en orden descendente con FALSO, y luego invertir el valor de clave al original (segundo mapa) y luego tomar los primeros 5 que son el bigget, el código es el siguiente:

RDD.map(lambda x:(x[1],x[0])).sortByKey(False).map(lambda x:(x[1],x[0])).take(5) 

Sé que hay una acción TakeOrdered en pySpark, pero solo logré ordenar en valores (y no en clave), no sé cómo obtener una clasificación descendente:

 RDD.takeOrdered(5,key = lambda x: x[1]) 

Ordenar por teclas (ascendente):

 RDD.takeOrdered(5, key = lambda x: x[0]) 

Ordenar por teclas (descendente):

 RDD.takeOrdered(5, key = lambda x: -x[0]) 

Ordenar por valores (ascendente):

 RDD.takeOrdered(5, key = lambda x: x[1]) 

Ordenar por valores (descendente):

 RDD.takeOrdered(5, key = lambda x: -x[1])