假设我有这个示例作业(在带有Java API的Groovy中):
def set1 = []
def set2 = []
0.upto(10) { set1 << it }
8.upto(20) { set2 << it }
def rdd1 = context.parallelize(set1)
def rdd2 = context.parallelize(set2)
//What next?
如何获得两者之间的差值?我知道union
可以创建一个RDD,其中包含这些RDD中的所有数据,但我该怎么做呢?
答案 0 :(得分:12)
如果您只想要一组减法subtract就是答案。如果您想要“外部”集合,请尝试:
rdd1.subtract(rdd2).union(rdd2.subtract(rdd1))
答案 1 :(得分:2)
我假设你正在寻找这样的东西:
rdd1 = A, B
rdd2 = B, C
您要查找的结果是A, C
?
这样做的一个简单方法是:
rdd1.union(rdd2).subtract(rdd1.intersection(rdd2))