我有一个具有不同值集的RDD,并且我想返回原始RDD中的所有不同集。有没有诸如“区别”之类的关键术语?
example = sc.parallelize([{1}, {2}, {3}, {1}])
example.collect()
这将输出:
[{1}, {2}, {3}, {1}]
我尝试了example.distinct().collect()
,而我期望的答案是带有不同集合的RDD:
[{1}, {2}, {3}] # expected result
有什么办法吗?
答案 0 :(得分:2)
转换为frozenset
,因为它们可以被散列。然后,您可以照常呼叫distinct
:
example.map(frozenset).distinct().map(set).collect()
# [{1}, {2}, {3}]
根据保险柜的建议,您还可以在删除重复项之前将集合转换为tuple
。