我想使用此新功能:覆盖特定分区而不删除s3中的所有数据
我使用了新标志(spark.sql.sources.partitionOverwriteMode="dynamic"
)并从我的IDE对其进行了本地测试,并且可以工作(我能够覆盖s3中的特定分区),但是当我将其部署到带有spark 2.3的hdp 2.6.5时。 0相同的代码未按预期创建s3文件夹,根本没有创建文件夹,仅创建了temp文件夹
我的代码:
df.write
.mode(SaveMode.Overwtite)
.partitionBy("day","hour")
.option("compression", "gzip")
.parquet(s3Path)
答案 0 :(得分:0)
您是否尝试过Spark版本 2.4 ?我已经使用了此版本,并且 EMR 和 Glue 都运行良好,要在 2.4版中使用“动态”功能,只需使用代码:
dataset.write.mode("overwrite")
.option("partitionOverwriteMode", "dynamic")
.partitionBy("dt")
.parquet("s3://bucket/output")
AWS文档将Spark 版本2.3.2 指定为使用spark.sql.sources.partitionOverwriteMode="dynamic"
。
请点击here。