开启hive的桶表功能(如果执行该命令报错,表示这个版本的Hive已经自动开启了分桶功能
set hive.enforce.bucketing=true;
创建分桶表
create table course (cid string,c_name string,tid string) clustered by(cid) into 3 buckets row format delimited fields terminated by '\t'; |
桶表的数据加载,由于桶表的数据加载通过hdfs dfs -put文件或者通过load data均不好使,只能通过insert overwrite
创建普通表,并通过insert overwrite的方式将普通表的数据通过查询的方式加载到桶表当中去
创建普通表:
create table course_common (cid string,c_name string,tid string) row format delimited fields terminated by '\t'; |
普通表中加载数据
load data local inpath '/export/data/hivedatas/course.txt' into table course_common; |
通过insert overwrite给桶表中加载数据
insert overwrite table course select * from course_common cluster by(cid); |