我有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 |
我只得到标题的串联。
我从逻辑上认为我的查询是正确的,显然我在询问Spark如何执行联接方面失败。
有提示吗?
答案 0 :(得分:0)
您可以使用以下方法进行联接。您只需指定对应的键列表即可
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")