第一种:设置如下参数格式:
hive> set hive.exec.dynamic.partition;
hive.exec.dynamic.partition=false
hive> set hive.exec.dynamic.partition.mode;
hive.exec.dynamic.partition.mode=strict
通过静态分区,是可以写入数据的。
通过动态分区,报这个错:FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict
第二种:设置如下参数格式:
set hive.exec.dynamic.partition.mode=nonstric;
再执行动态分区,报这个错:FAILED: SemanticException 1:24 Dynamic partition is disabled. Either enable it by setting hive.exec.dynamic.partition=true or specify partition column values. Error encountered near token 'deptno',
这句表名还是可以执行静态分区。
第三种:设置如下参数格式:
set hive.exec.dynamic.partition=true;
这样设置就可以执行成功。
第四种:设置如下参数格式:
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=strict;
报这个错误信息:FAILED: SemanticException [Error 10096]: Dynamic partition strict mode requires at least one static partition column. To turn this off set hive.exec.dynamic.partition.mode=nonstrict
总结:动态分区需要设置 set hive.exec.dynamic.partition=true;并且set hive.exec.dynamic.partition.mode=nonstrict;这样的设置才可以保证动态分区的成功执行。