取消
顯示的結果
而不是尋找
你的意思是:

如何合並兩個數據幀列在Apache火花

bhosskie
新的因素

我有以下兩個數據幀,隻有一個列都有相同的行數。我如何將它們合並,這樣我得到一個新的數據幀的兩列和數據幀的所有行。例如,

df1:

可樂+——+ | | +——+ | 1 | | 2 | | 3 | | 4 | +——+

df2:

+ - - - + | ColB | +——+ | 5 | | 6 | | 7 | | | +——+ 8

我想要合並的結果

df3:

+ - - - - - - - - - - - - | + |可樂ColB | +——+——+ | 1 | 5 | | 2 | 6 | | 3 | 7 | | 4 | 8 | +——+——+

我不太了解我可以這樣做的加入方法,因為隻有一個列和加入沒有任何條件將創建一個笛卡爾連接之間的兩列。有直接引發數據幀API調用呢?在R數據幀,我看到一個合並函數合並兩個數據幀。但是,我不知道它加入相似。

謝謝,

Bhaskar

9回複9

Govind89
新的貢獻者二世

你好所有的,甚至我在同樣的問題嗎?有發現嗎?謝謝!

DarrellUlm
新的貢獻者二世

@bhosskie和@Govind89

想問的是所有列合並,一種方法可以創建monotonically_increasing_id()列,隻有每個dataframes完全相同的行數,然後加入id。列的數量在每個dataframe可以不同。

從pyspark.sql。功能導入monotonically_increasing_id

df1 = sqlContext。createDataFrame ([(“foo”、“酒吧”,“太”、“aaa”),(“酒吧”,“酒吧”,“aaa級”、“foo”), (“aaa級”、“bbb”,“ccc”、“ddd”)), (“k”、“k”、“v”,“v”))

df2 = sqlContext。createDataFrame ([(“aaa”、“bbb”,“ddd”), (“www”、“eee”、“存款準備金率”),(“jjj”、“存款準備金率”,“www”)), (“m”、“m”、“n”))

df1 = df1。withColumn (“id”, monotonically_increasing_id ())

df2 = df2。withColumn (“id”, monotonically_increasing_id ())

df1.show ()

df2.show ()

df3 = df2。加入(df1, "id", "outer").drop("id")

df3.show ()

給出的輸出列合並,盡管行顯示順序是顛倒的。

LUCASPARTRIDGE
新的貢獻者二世

謝謝!這似乎為我工作;使用monotonically_increasing_id()雖然我很緊張,因為相應的id可以是不同的兩個dataframes如果任何部分的行生成在不同的分區。但是我想如果df2 df1產生在實踐中這種事發生的幾率相當低……?總之,我使用“left_outer”加入,以確保我保持行dataframe我認為最重要的是我想要的。

AmarsanaaGanbol
新的貢獻者二世

我也有同樣的問題。有什麼解決方案不使用連接。

歡迎來到磚社區:讓學習、網絡和一起慶祝

加入我們的快速增長的數據專業人員和專家的80 k +社區成員,準備發現,幫助和合作而做出有意義的聯係。

點擊在這裏注冊今天,加入!

參與令人興奮的技術討論,加入一個組與你的同事和滿足我們的成員。

Baidu
map