把数据直接上传到分区目录上,让分区表和数据产生关联的三种方式
test_partitions 表创建:
create table test_partitions(name string)
partitioned by (month string, day string)
row format delimited fields terminated by '\t';
方式一:上传数据后修复
#上传数据
hadoop fs -put test1.txt /hive/test_partitions/month=202005/day=3;
#执行修复命令
msck repair table test_partitions;
#查询数据则会查询到数据
select * from test_partitions where month='202005' and day='3';
方式二:上传数据后添加分区
#创建目录
hadoop fs -mkdir -p /hive/test_partitions/month=202005/day=3;
#上传数据
hadoop fs -put test.txt /hive/test_partitions/month=202005/day=3;
#执行添加分区
alter table test_partitions add partition(month='202005', day='3');
#查询数据
select * from test_partitions where month='202005' and day='3';
方式三:创建文件夹后 load 数据到分区
#创建目录
hadoop fs -mkdir -p /hive/test_partitions/month=202005/day=3;
#上传数据
load data local inpath 'test.txt' into table test_partitions partition(month='202005', day='3');
#查询数据
select * from test_partitions where month='202005' and day='3';