當加入兩個DataFrames防止複製列

學習如何防止重複列在連接兩個DataFrames磚。

寫的亞當Pavlacka

去年發表在:2022年10月13日

如果你執行加入火花和不正確地指定您加入你會得到重複的列名。這使它更難選擇列。本文和筆記本演示如何執行一個連接,這樣你就不會有重複的列。

連接列上

如果你加入列上,得到複製列。

Scala

% scala val llist = Seq ((“bob”、“2015-01-13”、4),(“愛麗絲”,“2015-04-23”,10))val左= llist.toDF(“名字”,“日期”、“持續時間”)val右= Seq((“愛麗絲”,100年),(“bob”, 23)) .toDF(“名字”,“上傳”)val df =。加入(右,left.col(“名字”)= = = right.col(“名字”))

Python

% python llist =[(“鮑勃”,“2015-01-13”,4),(“愛麗絲”,“2015-04-23”,10)]=火花。createDataFrame (llist(“名字”,“日期”,“時間”))=火花。createDataFrame([(“愛麗絲”,100年),(“鮑勃”、23)],[“名稱”,“上傳”])df =。left.name = = right.name加入(右)

解決方案

加入列指定為數組或字符串類型。

Scala

% scala val df =。加入(右,Seq(“名字”))
% scala val df =。“名稱”加入(右)

Python

% python df =。(“名字”)加入(右)
% python df =。“名稱”加入(右)

R

第一次注冊DataFrames表。

% python left.createOrReplaceTempView (“left_test_table”) right.createOrReplaceTempView (“right_test_table”)
% r庫(SparkR) sparkR.session(左)< - sql (“SELECT * FROM left_test_table”) < - sql (“SELECT * FROM right_test_table”)

上麵的代碼會導致重複的列。下麵的代碼並沒有。

% r(下降(加入(左,右,左$ name = =右美元的名字),左美元的名字))

加入DataFrames筆記本與複製列

檢查加入DataFrames複製列例子筆記本