2017-02-21 53 views
0

我试图连接两个dataframes具有相同的列名,并计算了一些新的价值。之后,我需要删除第二个表的所有列。列数很大。我怎样才能以更简单的方式做到这一点?我试图.drop(“table2。*”),但这不工作。星火SQL数据框中删除所有列从别名表连接后

回答

1

您可以使用select用别名必要的列:

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

参考与父DataFrame

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

而不是丢弃的,你可以选择所有要保持进一步的操作类似下面

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

它不是一种情况,如果我第二张桌子上有50列+50列。我可以选择“表1。*” +新列的名称 – Mike

+0

希望这有助于http://stackoverflow.com/a/35341524/1025328 –