1.开启hive动态分区
set hive.exec.dynamic.partition=true;
2.设置hive非严格模式
set hive.exec.dynamic.partition.mode=nonstrict;
默认是strict严格模式,至少要有一个静态分区。
3.创建目标表对应分区表
示例
将下表按照location进行分区
创建分区表
CREATE TABLE dept_par(
deptno int,
dname string
)PARTITIONED BY (location string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
导入数据
INSERT INTO TABLE dept_par PARTITION(location)
SELECT deptno,dname,loc FROM dept;
其他可选设置
设置最多可以创建多少分区:
set hive.exec.max.dynamic.partitions=1000;
整个MR Job中,最多可以创建多少个HDFS文件:
set hive.exec.max.created.files=100000;