Bucket没有在hadoop配置单元上创建



我正试图使用以下命令在hive中创建一个bucket:

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

命令执行成功:当我将数据加载到此表中时,它执行成功,并且使用select * from emp时显示所有数据。

然而,在HDFS上,它只创建了一个表,并且只有一个文件包含所有数据。也就是说,没有特定国家记录的文件夹。

首先,在DDL语句中,您必须明确地提到您想要多少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 ;

在上面的陈述中,我提到了两个桶,同样,你可以提到任何你想要的数字。

你还没做完!!

之后,在将数据加载到表中的同时,您还必须提到下面对hive的提示。

set hive.enforce.bucketing = true;  

这样就可以了。

之后,您应该能够看到在表目录下创建的文件数量与DDL语句中提到的bucket数量相同。

Bucketing不会创建HDFS文件夹,相反,如果你想为一个国家创建一个单独的floder,那么你应该PARTITION。

请详细介绍蜂箱分区和装箱。

相关内容

  • 没有找到相关文章

最新更新