根据spark中的值删除重复的键

清空

假设我有一个通过并行化键值对列表[(1,4),(2、3),(1、1),(1、0),(2,0)]给出的RDD,我想要根据值删除具有相同键的元组(因此,对于具有相同键的元组,仅保留值最低的元组)。因此,我想应用一个转换,使得RDD最终由[(1,0),(2,0)]表示(只要删除正确的副本,我不在乎在此订购)。目前,我在打电话

RDD = RDD.map(lambda (x, y): (y, x)).sortByKey().map(lambda (x, y): (y, x)).reduceByKey(lambda x, y: x)

前三个转换让我按值排序,最后一个仅删除重复的键(由于我的元组按值排序,因此最小值的元组副本保持原样)。这很好用,但是我觉得这样做肯定会使事情复杂化,并导致性能过高。有谁知道如何简化这一点?帮助将不胜感激!谢谢。

亚伦曼

基本上很简单rdd.reduceByKey(Math.min(_,_))-这是针对scala的

在Python中,我想那是
rdd.reduceByKey(lambda (x,y) : min(x,y))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章