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来确认表的版本。

相关推荐
实战派K8S&DB20 分钟前
如何在内网配置 TiDB 数据库 Agent
数据库·人工智能·分布式·tidb
牛企老板俱乐部25 分钟前
2026年珠海精锐增材智造金属小批量交付可提供SGS与RoHS材质证明
大数据
实战派K8S&DB26 分钟前
《基于 Dify + FastAPI + PyTiDB 搭建大模型驱动的 TiDB 智能运维 Agent》
运维·数据库·分布式·云原生·tidb·fastapi
SelectDB32 分钟前
Apache Doris 5.0 年度版本前瞻(一):构建统一的多模湖仓实时分析平台
大数据·数据库·数据分析
牛企老板俱乐部34 分钟前
北京租相机押金标准看机型具体而定芝麻信用分高可免押
大数据
! 冰封雪莲 !1 小时前
执法监管能力提升VR学练考系统解决方案
大数据·vr·环保
切糕师学AI1 小时前
如何查看已合并到 master 分支的所有分支?Git 分支清理指南
大数据·git·elasticsearch
FII工业富联科技服务1 小时前
从 Vera Rubin NVL72 拆解高密度 AI 液冷:GPU 的热到底怎么被带走?
大数据·人工智能
suaizai_1 小时前
从1210条报错到全自动修复:AI闭环运维实战
大数据·elasticsearch·搜索引擎
小白羊丨1 小时前
Kafka任务重试、退避与失败恢复怎么做?
分布式·kafka