加入

时间:2017-02-21 10:02:00

标签: apache-spark

我正在尝试使用相同的列名连接两个数据帧并计算一些新值。之后,我需要删除第二个表的所有列。列数很大。我怎样才能更容易地做到这一点?我试着.drop(" table2。*"),但这不起作用。

2 个答案:

答案 0 :(得分:1)

您可以将select与别名一起使用:

df1.alias("df1")
  .join(df2.alias("df2"), Seq("someJoinColumn"))
  .select($"df1.*", $"someComputedColumn", ...)

与父DataFrame的引用:

df1.join(df2, Seq("someJoinColumn")).select(df1("*"), $"someComputedColumn", ...)

答案 1 :(得分:0)

您可以选择所有必要的列,而不是删除,以进行下面的进一步操作

val newDataFrame = joinedDataFrame.select($"col1", $"col4", $"col6")