有关在 Hive 存储表中创建/插入数据的建议。
做了一些阅读(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL+BucketedTables)并测试了一些选项,但没有成功。
目前我在运行插入时遇到以下错误:
Error while processing statement: FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
创建代码:
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'
)
需要帮助为 create/insert 语句创建正确的语法以及有关 Hive 中分桶的一些解释。
table
。 (可能有错别字)正确且有效的查询如下,
创建声明:
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'
)
希望这有帮助!
如果我们想从未分区的表中添加复制值并将其存储在新的分区表中,也可以使用此语句。
插入 test_in 分区(ds =“some_value”) 选择 * 从 第二个表;