Как соединить два набора данных с условием ИЛИ, используя искру - PullRequest
0 голосов
/ 21 сентября 2018

Я использую здесь Java, и мои текущие наборы данных выглядят так:

набор данных d1 (где столбец c1 имеет как набор данных типа int, так и набор строк):
c1, c2,c3
12, ab, a
xy, ah, ab
19, a, ad
a, b, c

набор данных d2
c1, c2, c3
12, ab, a
10, ах, ab
19, a, xy
1, b, c

сейчасЯ хочу объединить два набора данных с условием ИЛИ, например:

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

Я пробовал вышеупомянутое объединение, и оно работает с меньшим набором данных, но когда мы делаем это для большего набора данных, такого как 8 миллиардов X 1 миллион, оно выполняется вечно.Я не уверен, что это происходит.Есть ли какие-нибудь выводы?

Я также попробовал следующие вещи:

when(condition, value1).otherwise(value2)

Но это тоже не сработало.Я также пытался погуглить, но не повезло.Также видел этот пост переполнения стека, но не работает для меня. Условное объединение в кадре данных Spark

...