pyspark联合对RDD的组合

时间:2018-08-27 12:17:36

标签: apache-spark pyspark distinct union rdd

我有多个RDD,每个RDD都由用户列表组成。如何以分布式方式将这些RDD的每个组合区分开来?

编辑

好吧,正如我所提到的,这不是要获得所有RDD的明确联合并将它们变成一个RDD,而是要获得RDD的组合的独特联合。

假设我们有三个相同类型的RDD,分别是 RDD1,RDD2 RDD3 ,我想要得到它们各自组合的不同并集的大小,如下所示:

sc.union(RDD1).distinct.count()
sc.union(RDD2).distinct.count()
sc.union(RDD3).distinct.count()
sc.union([RDD1,RDD2]).distinct().count()
sc.union([RDD1,RDD3]).distinct().count()
sc.union([RDD2,RDD3]).distinct().count()
sc.union([RDD1,RDD2,RDD3]).distinct().count()

因为在spark中没有RDDS的 RDD ,所以我无法对所有组合进行RDD,也无法映射每个RDD组合以获得结果。

随着RDD数量的增加,组合的数量也随着2^n而增加。我如何实现这个目标?

最好的问候。

1 个答案:

答案 0 :(得分:0)

如果RDD的类型相同,这非常简单;只是做:

rdd = sc.union([rdd1, rdd2, rdd3]).distinct()