蜂巢中的存储桶策略

时间:2020-01-24 14:06:05

标签: hive

我们可以在Hive的角色字段上创建存储桶吗? 例如:

axios

我可以在emp_grade列上创建存储桶吗?如果没有,那为什么?

2 个答案:

答案 0 :(得分:0)

可以。您可以为此使用CLUSTERED BY(emp_grade) INTO 5 BUCKETS

创建存储桶表的示例:

CREATE TABLE user_info_bucketed(user_id BIGINT, firstname STRING, lastname STRING)
COMMENT 'A bucketed copy of user_info'
CLUSTERED BY(user_id) INTO 256 BUCKETS;

答案 1 :(得分:0)

配置单元未明确限制存储数据的列的数据类型。 df1 = df[~df.index.get_level_values(0).duplicated(keep=False)] 是合法的存储分区类型。

在创建表时,需要使用char指定存储区列。

clustered by

请注意,关于创建表的 create table EmpTab( emp_id string, emp_name string, emp_city string, emp_grade char(10) ) clustered by (emp_grade) into 32 buckets ; 并不限制如何将数据插入表中。
为确保存储区表的数据根据​​其DDL进行组织,请强制将化简器的数量与存储区的数量相同。

在2.x之前,只需将clustered by设置为hive.enforce.bucketing即可完成。
或者,您可以手动设置减速器的数量,并在true子句中添加cluster by

在2.x之后,默认为强制实施,并且conf selectremoved

相关问题