【发布时间】:2021-08-28 14:40:16
【问题描述】:
我正在使用 AWS EMR 笔记本中的 pyspark,并希望在保存表时覆盖单个分区。通常可以这样做
df.write.mode('overwrite')\
.option("partitionOverwriteMode", "dynamic")\
.insertInto('table')
但是,这在写入 S3 时不起作用。有没有办法只覆盖该 S3 分区以及 spark 元数据中的文件?
注意:我使用 Glue 作为 spark 元数据
【问题讨论】:
-
难以置信。覆盖不起作用是什么意思。 S3 是一个对象存储并使用版本控制。
-
.partitionBy 子句缺失?
-
@thebluephantom 非常确定 .partitionBy 给出了一个错误,指出 insertInto 在同一个写入语句中不能与 partitionBy 一起使用。此外,我认为需要将 s3 路径指定为写入选项才能真正写入 s3
-
有趣。好吧,我在非 S3 中使用过没有问题。通过 EMRFS 通过 AWS EMR 的 S3 可以做到这一点。 S3 的事情确实是真的!
-
partitionBy...反正我总是用它。
标签: apache-spark amazon-s3 pyspark amazon-emr