【发布时间】:2022-01-28 01:28:45
【问题描述】:
我正在尝试通过 AWS Glue Job 将数据文件保存到 S3。
我正在尝试使用 spark 数据框作为
df.coalesce(4).write.mode("overwrite").format("parquet").save("s3://my_own_bucket/")
当我测试它时,代码返回一个错误
pyspark.sql.utils.IllegalArgumentException: 'Can not create a Path from an empty string'
如果我尝试将文件放在类似的文件夹中
df.coalesce(4).write.mode("overwrite").format("parquet").save("s3://my_own_bucket/folder1")
文件放在文件夹“folder1”
有人知道为什么我不能将文件夹放在存储桶级别的原因吗?
PS: 我也尝试过使用动态框架和作品。我想知道为什么使用“正常”火花不起作用。
final_sink = glueContext.write_dynamic_frame.from_options(frame = frame1, connection_type = "s3", connection_options = {"path": "s3://my_own_bucket"}, format = "parquet")
【问题讨论】:
-
尝试删除第一个 sn-p 中的最后一个斜杠。
-
folder1是您的情况下的对象键。失败的代码缺少对象键,因为它只包含 S3 存储桶名称 (my_own_bucket),因此出现错误。 -
首先感谢您的回答。 @luk2302 我试过了,但错误是一样的
-
@Dunedan 那么如果我尝试使用动态框架,为什么效果会很好?
标签: amazon-web-services amazon-s3 aws-glue aws-glue-spark