Объединение двух наборов данных в Spark SQL (Java) - PullRequest
0 голосов
/ 25 февраля 2019

У меня есть 2 Dataset с 4 столбцами в каждом.

Мои наборы данных:

'left':
a | b | c | d 
1 | 2 | 3 | 4

'right':
a | b | c | e 
1 | 2 | 3 | 5

Чего я хотел бы достичь:

a | b | c | d | e 
1 | 2 | 3 | 4 | 5

Мой код:

left.join(right,left.col(a).equalTo(right.col(a))
                        .and(left.col(b).equalTo(right.col(b)))
                        .and(left.col(c).equalTo(right.col(c)))
                        )),"left");

Я хотел бы добавить столбец 'e' с right до left, но в ответ я получаю:

a | b | c | d | a | b | c | e |

Я получаю только конкатенацию заголовков.
Я подумал, что с логической точки зрения мой запрос верный, я, очевидно, не могу спросить Спарка, как выполнить соединение.
Любой совет?

1 Ответ

0 голосов
/ 25 февраля 2019

Вы можете сделать соединение со следующим.Вам просто нужно указать список ключей, когда они corresspond

val df1 = Seq(
  (1, 2, 3, 4)
).toDF("a", "b", "c", "d")
val df2 = Seq(
  (1, 2, 3, 4)
).toDF("a", "b", "c", "e")

val df3 = df1.join(df2, Seq("a", "b", "c"), "left")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...