问题描述:创建分桶表时按字段id进行分桶,桶数为5,但实际在HDFS上存储却只有一个文件
建表语句:
create table bucket_test (
id bigint comment 'ID',
name string comment '名字'
)
comment '分桶表测试'
clustered by(id) into 5 buckets
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;
create table tmp_test (
id int comment 'ID',
name string comment '名字'
)
comment '中间临时表'
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' ;
数据准备:
vim bucket_test.txt
1 diao1
2 diao2
3 diao3
4 diao4
5 diao5
6 diao6
7 diao7
8 diao8
9 diao9
10 diao10
加载数据:
load data local inpath '/opt/module/data/bucket_data.txt' into table tmp_test;
数据导入分桶表:
insert into bucket_test select * from tmp_test;
查看HDFS文件系统中存储形式:
在/user/hive/warehouse/video.db/test_bucket路径下只有一个文件