【问题标题】:Insert data into bucketed Hive table将数据插入分桶 Hive 表
【发布时间】:2019-12-09 19:35:53
【问题描述】:

关于在 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 中分桶方面需要一些帮助。

【问题讨论】:

    标签: sql hadoop hive insert sql-insert


    【解决方案1】:
    1. 创建语句 - 缺少单词 table。 (可能是错字)
    2. 插入语句 - 缺少分区详细信息。在 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'
    )
    

    希望这会有所帮助!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-10
    • 1970-01-01
    • 1970-01-01
    • 2018-07-11
    • 2023-04-02
    • 2017-10-04
    相关资源
    最近更新 更多