关于在 Hive 的分桶表中创建/插入数据的建议。
做了一些阅读(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL+BucketedTables)并测试了几个选项但没有成功。
目前我在运行插入时遇到以下错误:
处理语句时出错:失败:执行错误,从 org.apache.hadoop.hive.ql.exec.spark.SparkTask 返回代码 3
创建代码:
CREATE test_in (
id VARCHAR(250),
field_1 VARCHAR(250),
field_2 VARCHAR(250),
field_3 VARCHAR(250),
field_4 VARCHAR(250),
field_5 VARCHAR(250)
)
PARTITIONED BY(ds STRING)
CLUSTERED BY(id) into 10 buckets
STORED AS orc
tblproperties("orc.compress"="NONE","transactional"="true");
插入代码:
INSERT INTO TABLE test_in
VALUES (
'9gD0xQxOYS',
'ZhQbTjUGLhz8KuQ',
'SmszyJHEqIVAeK8gAFVx',
'RvbRdU7ia1AMHhaXd9tOgLEzi',
'a010E000004uJt8QAE',
'yh6phK4ZG7W4JaOdoOhDJXNJgmcoZU'
)
需要帮助创建创建/插入语句的正确语法以及 Hive 中分桶的一些解释。
最佳答案
- CREATE STATEMENT - 单词
table
丢失。 (可能是打字错误) - 插入语句 - 缺少分区详细信息。 INSERT 操作期间需要分区值,因为它是分区表。
下面是正确且有效的查询,
创建语句:
CREATE TABLE test_in (
id VARCHAR(250),
field_1 VARCHAR(250),
field_2 VARCHAR(250),
field_3 VARCHAR(250),
field_4 VARCHAR(250),
field_5 VARCHAR(250)
)
PARTITIONED BY(ds STRING)
CLUSTERED BY(id) into 10 buckets
STORED AS orc
插入语句:
INSERT INTO test_in
PARTITION (ds='123')
VALUES (
'9gD0xQxOYS',
'ZhQbTjUGLhz8KuQ',
'SmszyJHEqIVAeK8gAFVx',
'RvbRdU7ia1AMHhaXd9tOgLEzi',
'a010E000004uJt8QAE',
'yh6phK4ZG7W4JaOdoOhDJXNJgmcoZU'
)
希望这对您有所帮助!
关于sql - 将数据插入分桶 Hive 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305048/