美文网首页程序员
Apache Spark 动态分区 OverWrite 问题

Apache Spark 动态分区 OverWrite 问题

作者: 团团饱饱 | 来源:发表于2020-10-19 14:58 被阅读0次

1、问题:spark Dataframe :

partition_day.write.partitionBy("day").mode(SaveMode.Overwrite).format("orc")

.saveAsTable("test.partition_day")

现象:历史数据会被删除,插入新数据。

2、解决方案:

从 Spark 2.3 开始,Spark 给我们提供了名为 spark.sql.sources.partitionOverwriteMode 的参数,它有两个值:STATIC 和 DYNAMIC。默认值是 STATIC,也就是默认会删除所有分区或者部分分区,这个是为了兼容 Spark 2.3 之前的行为。关于这个 ISSUE 可以参见 SPARK-20236,对应的 Patch 为 这里

spark.conf.set("spark.sql.sources.partitionOverwriteMode","dynamic")

或者使用hive sql  

INSERT OVERWRITE TABLE ctest.partition_dayPARTITION (`day`) --修改分区

相关文章

网友评论

    本文标题:Apache Spark 动态分区 OverWrite 问题

    本文链接:https://www.haomeiwen.com/subject/rxwkmktx.html