【发布时间】:2015-10-16 11:16:07
【问题描述】:
我有一个如下所示的 Spark RDD:
[(1, ...),
(1, ...),
(2, ...),
(3, ...)]
我正在尝试删除具有重复键的记录,在这种情况下,我想排除所有具有键“1”的记录。我想要的最终输出应该看起来像
[(2, ...),
(3, ...)]
到目前为止,我已经尝试过,它奏效了,但我的直觉认为应该有更好的解决方案:
>> a = sc.parallelize([(1,[1,1]), (1,[1,1]), (2,[1,1]), (3,[1,1])])
>> print a.groupByKey() \
.filter(lambda x: len(x[1])==1 ) \
.map(lambda x: (x[0], list(x[1])[0] )).collect()
[(2, [1, 1]), (3, [1, 1])]
谁能帮我解决这个问题?
【问题讨论】:
-
您能否接受答案或解释为什么它不起作用以便改进?在此先感谢:)
-
另外,如果你可以看看这个stackoverflow.com/q/33157978/1560062 如果你没有找到有用的答案,我会删除。
标签: python apache-spark pyspark