0
我想用V來排序我的K,V元組,即值。我知道TakeOrdered
,給這個,如果你知道你需要多少:如何在PySpark中有效地進行排序?
b = sc.parallelize([('t',3),('b',4),('c',1)])
使用TakeOrdered:
b.takeOrdered(3,lambda atuple: atuple[1])
使用Lambda
b.map(lambda aTuple: (aTuple[1], aTuple[0])).sortByKey().map(
lambda aTuple: (aTuple[0], aTuple[1])).collect()
我已經簽出了問題here,這表明後者。我很難相信takeOrdered
是如此簡潔,但它需要與Lambda
解決方案相同數量的操作。
有沒有人知道一個更簡單,更簡潔的火花轉換按價值排序?