當我嘗試將 DataFrame 作為 CSV 保存到 S3 時,該檔案是使用 Scala 生成的名稱創建的。例如 -
file.coalesce(1).write.option("header", "true").csv(bucket "/fileName.csv")
創建一個名為的目錄fileName.csv,其中bucket包含一個名為part-00000-955faf13-9fc3-4ccc-b0df-fb91cd701901-c000.csv
如何更改檔案名或使用特定名稱保存?
uj5u.com熱心網友回復:
Spark 的write方法不能直接控制寫入檔案的名稱。它只能控制目錄的名稱,而不能控制檔案本身。但可以在處理后更改檔案名:
import org.apache.hadoop.fs._
FileSystem.get(sc.hadoopConfiguration).rename(
new Path("dir/oldName.csv/part-0000"),
new Path("dir/newName.csv"))
uj5u.com熱心網友回復:
保存檔案后,這最終對我有用-
val src = new Path(s"s3a://$bucketName/$pathToDir")
val fs = src.getFileSystem(sc.hadoopConfiguration)
val status = fs.listStatus(src)
status.foreach(filename => {
fs.rename(new Path(s"s3a://$bucketName/$pathToDir/${filename.getPath.getName}"),
new Path(s"s3a://$bucketName/$pathToDir/$newFileName"))
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/410850.html
標籤:
上一篇:PySpark在S3讀取時掛起
下一篇:如何動態自動更新日期和時間
