1.创建二级分区表
create table stu(
id int, name string)
partitioned by (month string, day string)
row format delimited fields terminated by '\t';
2.为二级分区表加载数据
load data local inpath '/run1/f.txt' into table
stu partition(month='201906', day='15');
3.查询二级分区数据
select * from stu where month='201906' and day='15';
4.将数据上传到分区目录,让分区表和数据产生关联的三种方法
(1)方法一
创建分区目录
dfs -mkdir -p /user/hive/warehouse/stu/month=201906/day=07;
上传数据
dfs -put /run1/f.txt /user/hive/warehouse/stu/month=201906/day=07;
修复
msck repair table stu;
(2).方法二
数据上传之后,再重新建立分区
创建分区
dfs -mkdir -p /user/hive/warehouse/stu/month=201906/day=08;
上传数据
dfs -put /run1/6.txt /user/hive/warehouse/stu/month=201906/day=08;
增加分区
alter table stu add partition(month='201906',day='08');
(3).方法三
可以直接load数据
创建目录
dfs -mkdir -p /user/hive/warehouse/stu/month=201906/day=09;
load数据
load data local inpath '/run1/f.txt' into table stu partition(month='201906',day='06');
5.通过load向表中加载数据
追加
load data local inpath '/run1/f.txt' into table stu;
覆盖
load data local inpath '/run1/f.txt' overwrite into table stu;
加载hdfs上的文件
这种方式会将文件在hdfs上的位置改变到stu目录下
load data inpath '/f.txt' into table stu;
6.通过insert向表中加载数据
单表加载
insert into table stu partition(month=201906,day=10) select * from student;
多张表加载
from student
insert into table stu partition (month=201906,day=11)
select *
insert into table stu partition (month=201906,day=12)
select*;
7.通过location加载数据
dfs -put /run1/f.txt /user;
create table stu1 like stu
location '/user';