美文网首页程序员
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