spark动态分区参数spark.sql.sources.partitionOverwriteMode

Attention:这个搞不好整个表数据就干没了

spark.sql.sources.partitionOverwriteMode

动态分区的参数

static 就是 覆盖整个表(无论动态分区是否匹配),会删除表中所有现有分区,仅保留本次写入的分区。

dynamic 就是 仅覆盖本次写入中包含的分区,未被写入的现有分区会保留


使用sparksql insert overwrite插入hive分区导致所有分区被删

简单记录一下,防止踩坑。

hive.exec.dynamic.partition=true

hive.exec.dynamic.partition.mode=nonstrict

开启这两个参数,进行动态插入分区表:

insert overwrite table tablename partition(part_col)

1.这种方式在2.3之前,只会修改查询结果的分区,没什么问题。

2.但是如果在2.3之后,spark会增加一个spark.sql.sources.partitionOverwriteMode参数,这个参数有两个值,默认static,可修改为dynamic。问题就出在这里,如果不更改这个参数,使用默认的static,在动态插入时,不管插入的分区是否存在,都会导致所有的分区被覆盖,数据无法找回。

3.可以在hive中使用show create table查看spark.sql.create.version来确认表的版本。

相关推荐
浪子小院10 分钟前
ModelEngine 智能体全流程开发实战:从 0 到 1 搭建多协作办公助手
大数据·人工智能
Coder_Boy_36 分钟前
基于Spring AI的分布式在线考试系统-事件处理架构实现方案
人工智能·spring boot·分布式·spring
AEIC学术交流中心1 小时前
【快速EI检索 | ACM出版】2026年大数据与智能制造国际学术会议(BDIM 2026)
大数据·制造
wending-Y1 小时前
记录一次排查Flink一直重启的问题
大数据·flink
十月南城1 小时前
Hive与离线数仓方法论——分层建模、分区与桶的取舍与查询代价
数据仓库·hive·hadoop
UI设计兰亭妙微1 小时前
医疗大数据平台电子病例界面设计
大数据·界面设计
初恋叫萱萱1 小时前
模型瘦身实战:用 `cann-model-compression-toolkit` 实现高效 INT8 量化
大数据
袁煦丞 cpolar内网穿透实验室2 小时前
远程调试内网 Kafka 不再求运维!cpolar 内网穿透实验室第 791 个成功挑战
运维·分布式·kafka·远程工作·内网穿透·cpolar
人间打气筒(Ada)2 小时前
GlusterFS实现KVM高可用及热迁移
分布式·虚拟化·kvm·高可用·glusterfs·热迁移
xu_yule2 小时前
Redis存储(15)Redis的应用_分布式锁_Lua脚本/Redlock算法
数据库·redis·分布式