当bucket文件在hive中创建时

olhwl3o2  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(355)

在bucketing中,bucket文件是在配置单元的哪个阶段创建的?

create table emp( id int, name string, country string)
 clustered by( country)
INTO 2 BUCKETS
row format delimited
fields terminated by ','
stored as textfile ;

如果我有20个bucket,只有4行,会创建多少个文件?

fumotvh3

fumotvh31#

创建表时会创建存储桶。它们将作为表目录中的独立文件位于配置单元仓库中。一旦在bucket表中插入新记录,hive将计算bucket列的值的散列,并获取bucket文件的指针。对于您的20个bucket,您将在开始时有20个空文件,但您的4条记录的确切位置将取决于hash函数对bucket列值的结果:


**record.country.value => hashfunction(record.country.value) = bucketNumber**

您可以按照本文bucket table部分中描述的步骤来复制它

相关问题