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
解决方案相同数量的操作。
有没有人知道一个更简单,更简洁的火花转换按价值排序?