我们可以在Hive的角色字段上创建存储桶吗? 例如:
axios
我可以在emp_grade列上创建存储桶吗?如果没有,那为什么?
答案 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 select
为removed。