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

當我保存一個火花dataframe使用df.write.format (csv),我最後mulitple csv文件。為什麼會這樣?

User16826992666
價值貢獻
1接受解決方案

接受的解決方案

Anand_Ladda
尊敬的貢獻者二世

你得到多個文件在一個文件夾,因為火花寫每個洗牌分區就地“一部分…”文件,以避免網絡I / O。您可以使用合並來把所有的緩步到單個分區並寫出來一個文件,但注意性能的影響

df.coalesce (1) .write.format (csv) .option .save(“標題”、“true”) (“singlefile.csv”)

在原帖子查看解決方案

3回複3

Anand_Ladda
尊敬的貢獻者二世

你得到多個文件在一個文件夾,因為火花寫每個洗牌分區就地“一部分…”文件,以避免網絡I / O。您可以使用合並來把所有的緩步到單個分區並寫出來一個文件,但注意性能的影響

df.coalesce (1) .write.format (csv) .option .save(“標題”、“true”) (“singlefile.csv”)

User16826994223
尊敬的貢獻者三世

隻使用

df.coalesce (1) .write.csv(“文件,路徑”)

df.repartition (1) .write。csv(“文件路徑)

當你準備寫DataFrame,第一次使用火花再分配()和合並()將所有分區的數據合並到單個分區,然後將它保存到一個文件中。這仍然創建一個目錄並寫一個部分文件在一個目錄,而不是多個部分文件。

合並分區()和()火花轉換操作洗牌,來自多個分區成一個分區的數據。使用合並(),因為它性能更好,使用較少的資源與再分配()。

注意:您必須非常小心當使用火花合並分區()和()方法在較大的數據集,因為他們是昂貴的操作,可以把OutOfMemory錯誤。

User16869510359
尊敬的貢獻者

這是由設計和按預期工作。火花寫數據分布。

使用合並(1)可以生成一個文件,但是這個解決方案不是可伸縮的大型數據集,因為它涉及到將一個任務的數據。

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

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

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

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

Baidu
map