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

我如何創建一個CSV文件中的多個分區磚/火花嗎?

User16826991422
貢獻者

dbfs使用sparkcsv寫數據,我打算搬到我的筆記本電腦通過標準s3複製命令。

默認為火花csv是將輸出寫入分區。我可以迫使其單個分區,但是真的想知道如果有一個通用的方法。

在hadoop文件係統,我簡單地運行之類的

hadoop fs -getmerge / user / hadoop / dir1 /。/ myoutput.txt

從內部等效磚平台嗎?Beplay体育安卓版本

1接受解決方案

接受的解決方案

User16826991422
貢獻者

如果數據不超過幾GB然後你可以合並數據集之前寫出來。

喜歡的東西:

df.coalesce (1) .write.format .save (“com.databricks.spark.cvs”)(“路徑……”)

然後使用dbutils複製到一個文件。fs命令:

dbutils.fs.cp(“路徑…路徑”、“. . . . . . csv”)

在原帖子查看解決方案

12個回複12

User16826991422
貢獻者

如果數據不超過幾GB然後你可以合並數據集之前寫出來。

喜歡的東西:

df.coalesce (1) .write.format .save (“com.databricks.spark.cvs”)(“路徑……”)

然後使用dbutils複製到一個文件。fs命令:

dbutils.fs.cp(“路徑…路徑”、“. . . . . . csv”)

任何建議如果超過幾GB數據嗎?顯然令人擔憂的是調用合並將所有數據到驅動內存。

這是可怕的建議。不要使用.coalesce的DataFrame方法(1)或.repartition(1)除了非常小的數據集。相反,使用hdfs合並機製通過FileUtils.copyMerge ()。這個解決方案在StackOverflow正確識別方法:

http://stackoverflow.com/a/41785085/501113

看到我的裝飾這個答案,填寫……在“路徑…”:

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

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

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

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

Baidu
map