dbfs使用sparkcsv寫數據,我打算搬到我的筆記本電腦通過標準s3複製命令。
默認為火花csv是將輸出寫入分區。我可以迫使其單個分區,但是真的想知道如果有一個通用的方法。
在hadoop文件係統,我簡單地運行之類的
hadoop fs -getmerge / user / hadoop / dir1 /。/ myoutput.txt
從內部等效磚平台嗎?Beplay体育安卓版本
請這StackOverflow答案尋找最有效的方式使用HDFS FileUtils.copyMerge()命令:
請這StackOverflow答案尋找最有效的方式使用HDFS FileUtils.copyMerge()命令:
如果你能適應所有的數據到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。
來源: