将数据插入存储分区的Hive表

时间:2019-08-01 08:42:35

标签: sql hadoop hive insert sql-insert

关于将数据创建/插入到Hive的存储表中的建议。

进行了一些阅读(https://cwiki.apache.org/confluence/display/Hive/LanguageManual+DDL+BucketedTables),并测试了很少的选择,但没有成功。

当前,在运行插入时出现以下错误:

function increment() { var spreadsheet = SpreadsheetApp.getActive(); var reocurring = spreadsheet.getRange("B5").getValue().toString(); if (reocurring == 'TRUE') { var value = spreadsheet.getRange('C5').getValue(); spreadsheet.getRange('C5').setValue(value + 1); } };

创建代码:

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");

需要帮助为create / insert语句创建正确的语法以及有关Hive中存储区的一些说明。

1 个答案:

答案 0 :(得分:1)

  1. 创建声明-缺少单词table。 (可能是错字)
  2. INSERT STATEMENT-分区详细信息丢失。 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'
)

希望这会有所帮助!