应用set()删除元组内的列表中的重复项 - Python

时间:2015-06-24 16:45:09

标签: python pyspark

我有一个RDD键/值对,其中value是这样的列表: 我的RDD就像这样

[("a1",["w1","w2","w3","w1"]), ("a2",["w3","w3","w3","w1"]), ....

我如何才能将函数集应用于list元素以删除重复项?

到目前为止,我有这个但没有得到正确的结果:

uniqueTokens = RDD.map(lambda x: (x[0],set(x[1])))

感谢您的帮助!

2 个答案:

答案 0 :(得分:2)

rdd array(1) { [0]=> array(2) { ["COUNT(*)"]=> string(1) "0" [0]=> string(1) "0" } } 中每个列表的唯一项目,例如:[("a1",["w1","w2","w3","w1"]), ("a2",["w3","w3","w3","w1"]), ....。您可以在(w1, w2, w3, w3, w1,...)中使用set()

flatMap()

希望这有帮助

答案 1 :(得分:0)

In [48]: lt
Out[48]: [('a1', ['w1', 'w2', 'w3', 'w1']), ('a2', ['w3', 'w3', 'w3', 'w1'])]

In [49]: [(x,set(y)) for (x,y) in lt]
Out[49]: [('a1', {'w1', 'w2', 'w3'}), ('a2', {'w1', 'w3'})]