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;

2443

被折叠的 条评论
为什么被折叠?



