HIve: создание таблицы завершилось неудачно с "Vertex не удалось из-за OWN_TASK_FAILURE" - PullRequest
2 голосов
/ 07 июня 2019

У меня есть Table_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
..

Попытка другого Table_2 из Table_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;

Но, получив следующее сообщение error:

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

Любая помощь / предложение по решению проблемы. Поскольку я не понимаю, что не так в запросе ...

1 Ответ

1 голос
/ 07 июня 2019

Не могли бы вы когда-нибудь попробовать следующий синтаксис:

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

(или)

By using ROW FORMAT 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;

Разделитель AFAIK не оказывает никакого влияния на формат паркета, и hive внутренне управляет разделителем в случае таблиц не текстового формата.

В случае, если вам необходимо включить разделители:

Then create table_2:

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';

Затем запустите оператор вставки для загрузки данных из таблицы_1 в таблицу_2

insert into Table_2 select * from Table_1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...