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

聯盟多個dataframes循環,用不同的模式

KKo
貢獻者三世

在一個循環中我幾乎沒有dataframes創建。我可以結合他們與一個問題如果他們有相同的模式使用(df_unioned =減少(DataFrame。unionAll, df_list)。現在我的問題是如何聯盟如果dataframe之一df_list有不同數量的列?我認為,減少(df_unioned = DataFrame。unionByName、df_list allowMissingColumns = True)將解決這個問題,但這是給我的錯誤:reduce()沒有關鍵字參數。提前謝謝。讓我知道如果你需要任何細節的問題。

1接受解決方案

接受的解決方案

KKo
貢獻者三世

@Joseph Kambourakis我發現實現這一目標的一種方式。使用函數

def union_all (dfs):

如果len (dfs) > 1:

返回dfs [0] .unionByName (union_all (dfs [1:]), allowMissingColumns = True)

其他:

返回dfs [0]

在原帖子查看解決方案

4回複4

匿名
不適用

工會不工作如果他們有不同的模式和列。如果你需要與不同的聯盟dataframes模式,隻需添加列的null遺漏什麼讓他們相同的模式。

KKo
貢獻者三世

@Joseph Kambourakis我發現實現這一目標的一種方式。使用函數

def union_all (dfs):

如果len (dfs) > 1:

返回dfs [0] .unionByName (union_all (dfs [1:]), allowMissingColumns = True)

其他:

返回dfs [0]

Kaniz
社區經理
社區經理

太棒了! !

@Kris柯伊拉臘,謝謝你分享你的解決方案! !

anoopunni
新的貢獻者二世

你好,
我遇到過同樣的場景中,使用減少()和unionByname我們可以實現解決方案如下:

val lstDF:列表[Datframe] = (df1、df2 df3, df4, df5)

val combinedDF = lstDF。減少((df2 df1) = > df1。unionByName (df2 allowMissingColumns = true))

Scala # # #火花多個模式

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

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

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

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

Baidu
map