sql - 将数据插入分桶 Hive 表

标签 sql hadoop hive insert sql-insert

关于在 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 中分桶的一些解释。

最佳答案

  1. CREATE STATEMENT - 单词 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'
)

希望这对您有所帮助!

关于sql - 将数据插入分桶 Hive 表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57305048/

相关文章:

sql - 删除 Hive 分区锁

mysql - 将数据从 mysql 导入 hive 时,用户注销和 hadoop 服务器自动关闭

mysql - 根据不同的条件从 SQL 查询中获取多个数据

sql - 更改数据类型时进行透视(动态)

hadoop - hadoop中Namenode格式错误

hadoop - 数据节点未启动..这是日志文件

hadoop - pig udf计算博客中的时间差

sql - 教义 : Use dash in field alias

mysql - SQL从字典中的键获取值

hadoop - 从 MapReduce 写入 Hive(初始化 HCatOutputFormat)