首先强调一下,分区的名称不能是中文,只能是英文!不然会报错。
1. 本地文件导入到分区表
LOAD DATA 【LOCAL】 INPATH ‘....’ 【OVERWRITE】 INTO TABLE t1 【PARTITION (...)】
eg: load data local inpath '/usr/local/data/user' into table jiuye partition(grade='1');
2. 丛hive查询插入
INSERT OVERWRITE TABLE t2 PARTITION (day=2) SELECT * FROM t1;
3. 动态分区插入
set hive.exec.dynamic.partition=true;
set hive.exec.dynamic.partition.mode=nonstrict;
set hive.exec.max.dynamic.partitions.pernode=1000;
INSERT OVERWRITE TABLE t2 PARTITION (province, city) SELECT ....... , a.province, a.city FROM a;
注意:
动态分区字段一定要放在所有静态字段的后面,这里业务字段在前,最后 a.province, a.city作为动态分区字段会被赋到PARTITION (province, city)中
INSERT OVERWRITE TABLE t2