hive分桶,一般在hive数据表中查询出来的数据插入到分桶表中,一般不在load数据时使用分桶表
分桶实例:
set hive.enforce.bucketing = true;如果不设置这个分桶不生效
set mapreduce.job.reduce = 4;
drop table stu_buck;
create table stu_buck(Sno int,Sname string,Sex string,Sage int,Sdept string)
clustered by(Sno)
sorted by(Sno DESC)
into 4 buckets
row format delimited
fields terminated by ',';
insert overwrite table stu_buck
select * from student cluster by(Sno) sort by(Sage);报错,cluster和sort不能共存
#开会往创建的分通表插入数据(插入数据需要是已分桶, 且排序的)
#可以使用distribute by(sno) sort by(sno asc) 或是排序和分桶的字段相同的时候使用Cluster by(字段)
#注意使用cluster by 就等同于分桶+排序(sort)
insert overwrite table stu_buck
select * from student distribute by(Sno) sort by(Sno asc);insert overwrite table stu_buck
select * from student cluster by(Sno);