(1)方式一:上传数据后修复
首先上传数据到HDFS中:
hive (default)> dfs -mkdir -p
/user/hive/warehouse/dept_partition2/month=201709/day=12;
hive (default)> dfs -put /opt/module/datas/dept.txt /user/hive/warehouse/dept_partition2/month=201709/day=12;
查询刚才上传的数据:
hive (default)> select * from dept_partition2 where month='201709' and day='12';
发现是查不到数据的,然后执行执行修复命令:
hive> msck repair table dept_partition2;
再次查询数据:
hive (default)> select * from dept_partition2 where month='201709' and day='12';
(2)方式二:上传数据后添加分区
首先上传数据到HDFS中:
hive (default)> dfs -mkdir -p
/user/hive/warehouse/dept_partition2/month=201709/day=11;
hive (default)> dfs -put /opt/module/datas/dept.txt /user/hive/warehouse/dept_partition2/month=201709/day=11;
接着执行添加分区命令:
hive (default)> alter table dept_partition2 add partition(month='201709',
day='11');
然后查询数据:
hive (default)> select * from dept_partition2 where month='201709' and day='11';
(3)方式三:创建文件夹后load数据到分区
首先创建目录:
hive (default)> dfs -mkdir -p
/user/hive/warehouse/dept_partition2/month=201709/day=10;
然后上传数据:
hive (default)> load data local inpath '/opt/module/datas/dept.txt' into table
dept_partition2 partition(month='201709',day='10');
最后查询数据:
hive (default)> select * from dept_partition2 where month='201709' and day='10';