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

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

User16826991422
貢獻者

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

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

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

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

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

12個回複12

User16826991422
貢獻者

謝謝理查德。這是用於單個文件。我會將它添加到我們當地的文檔。最終,我編寫了一個shell腳本,下載所有部件並在本地合並它們,這樣可以保持一個選項的人更大的文件。

請這StackOverflow答案尋找最有效的方式使用HDFS FileUtils.copyMerge()命令:

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

chaotic3quilibr
新的貢獻者三世

請這StackOverflow答案尋找最有效的方式使用HDFS FileUtils.copyMerge()命令:

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

Rampatel5
新的貢獻者二世

FileUtils.copyMerge()支持在DBFS磚?

JosiahYoder
新的貢獻者三世

如果你能適應所有的數據到RAM中一個工人(因此可以使用.coalesce(1)),您可以使用dbfs找到並移動導致的CSV文件:

val fileprefix = " / mnt / aws /道路/ file-prefix”

數據集.coalesce (1)

.write

/ / .mode(“覆蓋”)/ /我通常不使用這個,但是你可能想要。

.option(“頭”,“真正的”).option(“分隔符”、“t \”) . csv (fileprefix +“.tmp”)

val partition_path = dbutils.fs.ls (fileprefix +“.tmp /”) .filter(文件= > file.name.endsWith (. csv)) (0) .path

dbutils.fs.cp (partition_path fileprefix +“.tab”)

dbutils.fs.rm (fileprefix +“.tmp”,遞歸= true)

如果你的文件不符合RAM的工人,你可能想要考慮chaoticequilibrium建議使用FileUtils.copyMerge ()。我沒有做過,還不知道是否有可能,例如,S3。

來源:

  • 堆棧溢出:編寫單獨的CSV文件

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

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

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

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

Baidu
map