无法使用Spark在S3上创建分区

时间:2019-03-13 11:40:20

标签: scala apache-spark partitioning hortonworks-data-platform hortonworks-sandbox

我想使用此新功能:覆盖特定分区而不删除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)

1 个答案:

答案 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