hive 如何在配置中设置分区的非严格模式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/weixin_42411818/article/details/102692727

hive配置中对hive.exec.dynamic.partition.mode的说法如下:
在严格模式下,用户必须指定至少一个静态分区
以防用户意外覆盖所有分区。
在非严格模式下,所有分区都允许是动态的。

事实上,我们很多时候都需要设置为非严格模式

设置成非严格模式的两种方式:
1.每次hive会话的时候设置如下参数:
set hive.exec.dynamic.partition.mode=nonstrict;
不加会报错:Error: org.apache.spark.SparkException: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict (state=,code=0)
提示够明显吧?

2.在配置中修改参数,使之成为永久的,就不需要每次使用都去设置了,累人
修改conf中的hive-default.xml.template:
cp hive-default.xml.template hive-default.xml
vi hive-default.xml
找到hive.exec.dynamic.partition.mode 将值:strict改为nonstrict,重启hive使之生效即可

猜你喜欢

转载自blog.csdn.net/weixin_42411818/article/details/102692727