首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用s3a问题编写分区拼花

使用s3a问题编写分区拼花
EN

Stack Overflow用户
提问于 2020-01-13 16:22:22
回答 1查看 624关注 0票数 0

我有一个pyspark脚本,它从s3读取未分区的单个拼板文件,执行一些转换,并按照日期将其写回另一个s3桶。

我用s3a做读写。读取文件并执行转换是很好的,也没有问题。但是,当我尝试使用s3写入s3a并对其进行分区时,它会引发以下错误:

警告s3a.S3AFileSystem:找到文件(有/):真正的文件?不应该发生:folder1 1/output org.apache.hadoop.fs.FileAlreadyExistsException:不能为路径‘s3A://Bucket1/folder1 1/output’创建目录,因为它是一个文件。

im用于编写代码的部分如下所示,其中im试图附加到现有目录,但为新日期添加一个新分区:

代码语言:javascript
复制
output_loc = "s3a://bucket1/folder1/output/"

finalDf.write.partitionBy("date", "advertiser_id") \
.mode("append") \
.parquet(output_loc)

我使用Hadoopv3.0.0和Spark2.4.1

有人在使用s3a而不是s3n时遇到过这个问题吗?顺便说一句,它在使用s3n的旧实例上工作得很好。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2020-01-15 12:23:00

存储桶s3a://bucket1/folder1/output/中有一个带有尾随斜杠的条目,其大小大于0。S3A警告说,它不高兴,因为它被当作一个空的dir标记,一旦在下面添加文件,就有可能被删除。

  1. 从AWS控制台查看S3桶,查看存在什么,删除它
  2. ,尝试使用output_loc而不跟踪/查看这是否有助于(不太可能.)

添加对结果的跟踪;如果删除没有解决问题,那么hadoop可能是值得存档的

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59720374

复制
相关文章

相似问题

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