今天实验了一下hive中的mapjoin和bucket mapjoin,情况如下:
首先创建数据表和制造数据,表test1,仅包含1列(id int):
1. 创建表, 并以id字段划分桶, 桶个数为20个,也就是在插入数据时会生成20个数据文件对应20个桶
create table test_mapjoin(id int) clustered by (id) into 20 buckets;
2.导入数据前设置桶划分参数为真:sethive.enforce.bucketing=true,能够保证hive在插入数据时使用桶对数据划分,以下将插入300万行数据: