2017-02-21 47 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 –

相關問題