我有多个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
而增加。我如何实现这个目标?
最好的问候。
答案 0 :(得分:0)
如果RDD的类型相同,这非常简单;只是做:
rdd = sc.union([rdd1, rdd2, rdd3]).distinct()