当我试图将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的目录
如何更改文件名或使用特定名称保存文件?
发布于 2022-01-12 19:27:30
这就是文件保存后对我起作用的原因-
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"))
})发布于 2022-01-12 16:09:11
Spark的write方法不能直接控制所写文件的名称。它只能控制目录的名称,而不能控制文件本身。但是,可以在处理后更改文件名:
import org.apache.hadoop.fs._
FileSystem.get(sc.hadoopConfiguration).rename(
new Path("dir/oldName.csv/part-0000"), 
new Path("dir/newName.csv"))https://stackoverflow.com/questions/70664946
复制相似问题