[英]Overwrite in to same partition files after transformation based on the filename using spark
您好我在 S3 存儲桶 MyBucket/object/file 1.csv、文件 2.csv、文件 3.csv、
我已將此數據加載到單個數據幀中,需要根據列進行一些轉換。然后我想寫入轉換列值,現在我想將文件覆蓋回相同的 file1.csv、file2.csv、file3.csv。 當我給出覆蓋命令時,它會在同一文件夾中創建另一個文件並加載值
如何使用 python 和 spark 或 scala 編寫函數或代碼
好吧,我不確定我的答案是否是最好的,但我希望是。
基本上為了將輸出寫入文件,Spark 使用 hadoop 配置,即mapreduce.output.basename
默認值應該類似於 part-00000。
您可以調整此配置,但不能與您的文件名約定完全相同。
因此,您必須編寫並重命名為您的文件名約定。
所以手續很簡單。
每當您在 spark 中保存文件時,它都會創建目錄,然后創建部分文件。
您可以使用 coalesce(1) 將部分文件從多個文件限制為 1 個,但您無法控制目錄創建。
df2.coalesce(1).write.mode("覆蓋").csv("/dir/dir2/Sample2.csv")
它將創建一個目錄,即 Sample2.csv,並將創建一個零件文件。
我希望它消除了你的疑問。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.