【发布时间】:2016-02-15 20:11:29
【问题描述】:
我想按 V 对我的 K,V 元组进行排序,即按值。我知道TakeOrdered 很适合这个,如果你知道你需要多少:
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 解决方案相同数量的操作。
有谁知道 spark 中按值排序的更简单、更简洁的转换?
【问题讨论】:
标签: python sorting lambda apache-spark