如何使用Spark将具有OR条件的两个数据集连接起来

时间:2018-09-21 15:40:51

标签: java apache-spark apache-spark-sql

我在这里使用Java,我当前的数据集如下:

数据集d1 (其中c1列同时具有int和字符串类型的数据集):
c1,c2,c3
12,ab,a
xy,啊,ab
19,a,广告
a,b,c

数据集d2
c1,c2,c3
12,ab,a
10,啊,ab
19,a,xy
1,b,c

现在,我想加入两个具有OR条件的数据集:

d1.col(c1).equalTo(d2.col(c1)).or(d1.col(c1).equalTo(d2.col(c3)))

我已经尝试了上述联接,并且它适用于较小的数据集,但是当我们对80亿X 100万这样的较大数据集进行操作时,它将永远运行。我不确定会发生什么。有线索吗?

我还尝试了以下操作:

when(condition, value1).otherwise(value2)

但是它也没有解决。我也尝试过谷歌搜索,但没有运气。还看到了这个堆栈溢出的帖子,但不适用于我。 Conditional Join in Spark DataFrame

0 个答案:

没有答案