Hive 配置单元:表创建失败,返回“0”;由于自己的“任务”失败,Vertex未成功;

Hive 配置单元:表创建失败,返回“0”;由于自己的“任务”失败,Vertex未成功;,hive,hiveql,Hive,Hiveql,我有一个表_1,其结构如下: ID ABR CTG DATERNG VAL1 VAL2 VAL3 IND 001 BVF NJ 06/01/2019-07/30/2019 9.4 7.8 8.9 Y 002 BHT JP 05/01/2018-05/08/2019 89.5 55.4 67.4 N 003 GHT JK 09/09/2017-03/03/2018 45.4 45.3 0.0 N .. 从表1 编写了以下简单的配置单元查询: CR

我有一个
表_1
,其结构如下:

ID  ABR CTG DATERNG               VAL1 VAL2 VAL3 IND
001 BVF NJ  06/01/2019-07/30/2019 9.4  7.8  8.9   Y
002 BHT JP  05/01/2018-05/08/2019 89.5 55.4 67.4  N
003 GHT JK  09/09/2017-03/03/2018 45.4 45.3 0.0   N
..
表1

编写了以下简单的配置单元查询:

CREATE TABLE Table_2
ROW FORMAT DELIMITED 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
STORED AS INPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
AS SELECT * FROM Table_1;
但是得到下面的
错误
消息:

Caused by: org.apache.hadoop.hive.ql.metadata.HiveException: Hive 
Runtime Error while processing row (tag=0) {"key":{},"value": 
{"_col0":001,"_col1":"BVF","_col2":"NJ","_col3":"06/01/2019- 
07/30/2019","_col4":"9.4","_col5":7.8,"_col6":8.9,"_col7":"Y"}}

Vertex did not succeed due to OWN_TASK_FAILURE, failedTasks:1 
killedTasks:0, Vertex vertex_1558653107192_0189_1_01 [Reducer 2] 
killed/failed due to:OWN_TASK_FAILURE]DAG did not succeed due to 
VERTEX_FAILURE. failedVertices:1 killedVertices:0

任何解决问题的帮助/建议。由于我没有发现查询中有什么错误…

请尝试使用以下语法

hive> CREATE TABLE Table_2 stored as parquet
      AS SELECT * FROM Table_1;
(或)

使用行格式SERDE:

CREATE TABLE Table_2
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' 
as SELECT * FROM Table_1;
CREATE TABLE Table_2(col1 int) --specify column names
ROW FORMAT delimited
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
STORED AS INPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';
AFAIK分隔符对拼花地板格式没有任何影响,对于非文本格式的表,hive在内部管理分隔符

如果您还需要包含分隔符:

然后创建表2:

CREATE TABLE Table_2
ROW FORMAT SERDE
'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat' 
as SELECT * FROM Table_1;
CREATE TABLE Table_2(col1 int) --specify column names
ROW FORMAT delimited
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
STORED AS INPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT 
'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat';
然后运行insert语句将数据从表_1加载到表_2

insert into Table_2 select * from Table_1;