首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何为CSV文件指定名称,我用Scala保存到S3中

如何为CSV文件指定名称,我用Scala保存到S3中
EN

Stack Overflow用户
提问于 2022-01-11 10:10:29
回答 2查看 786关注 0票数 1

当我试图将DataFrame保存为CSV到S3时,将使用Scala生成的名称创建该文件。例如-

代码语言:javascript
复制
  file.coalesce(1).write.option("header", "true").csv(bucket + "/fileName.csv")

使用名为fileName.csv的文件在bucket中创建一个名为part-00000-955faf13-9fc3-4ccc-b0df-fb91cd701901-c000.csv的目录

如何更改文件名或使用特定名称保存文件?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2022-01-12 19:27:30

这就是文件保存后对我起作用的原因-

代码语言:javascript
复制
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"))
})
票数 0
EN

Stack Overflow用户

发布于 2022-01-12 16:09:11

Spark的write方法不能直接控制所写文件的名称。它只能控制目录的名称,而不能控制文件本身。但是,可以在处理后更改文件名:

代码语言:javascript
复制
import org.apache.hadoop.fs._
FileSystem.get(sc.hadoopConfiguration).rename(
new Path("dir/oldName.csv/part-0000"), 
new Path("dir/newName.csv"))
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70664946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档