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

相关推荐
勇往直前plus2 小时前
ElasticSearch详解(篇一)
大数据·elasticsearch·jenkins
无心水3 小时前
【分布式利器:Kafka】1、Kafka 入门:Broker、Topic、分区 3 张图讲透(附实操命令)
分布式·kafka·topic·isr·broker·分区·生产者消费者模式java实现
九皇叔叔4 小时前
Zookeeper 基础入门与应用场景解析
分布式·zookeeper·云原生
一只小青团4 小时前
Hadoop之HDFS
大数据·hadoop·分布式
ITVV5 小时前
hadoop-3.4.1 单机伪部署
大数据·linux·hadoop
小鹿学程序5 小时前
4.子任务四:Hive 安装配置
数据仓库·hive·hadoop
小杜谈数5 小时前
企业BI建议--数据治理平台
大数据
西岭千秋雪_5 小时前
Kafka安装和使用
java·分布式·kafka·java-zookeeper
谅望者5 小时前
数据分析笔记07:Python编程语言介绍
大数据·数据库·笔记·python·数据挖掘·数据分析
qq_281317477 小时前
Kafka
分布式·kafka