Загрузить файл в hive с длинным текстовым столбцом

#hadoop #hive #hiveql

#hadoop #hive #hiveql

Вопрос:

Я пытаюсь загрузить .csv файл в hive, файл выглядит следующим образом :

введите описание изображения здесь

Я пытался использовать load data inpath 's3://testinghiveme/T.csv' into table data;

но это приводит ко всему NULLS

введите описание изображения здесь

Я не могу загрузить данные с большим текстом в столбец hive, я пытался использовать delimited в create script, но не работает.

 create table t(id int...)
ROW FORMAT DELIMITED FIELDS TERMINATED BY ','
LINES TERMINATED BY 'n'
STORED AS TEXTFILE;


hive> describe t;
OK
id                      int
posttypeid              int
acceptedanswerid        int
parentid                int
creationdate            varchar(20)
deletiondate            varchar(20)
score                   int
viewcount               int
body                    varchar(500)
owneruserid             int
ownerdisplayname        varchar(50)
lasteditoruserid        int
lasteditordisplayname   varchar(100)
lasteditdate            varchar(20)
lastactivitydate        varchar(20)
title                   varchar(100)
tags                    varchar(100)
answercount             int
commentcount            int
favoritecount           int
closeddate              varchar(20)
communityowneddate      varchar(20)
  

Комментарии:

1. можете ли вы показать describe table ?

2. добавлены @VamsiPrabhalaI.

3. @GI.JOE если вы присмотритесь, у вас есть , (разделитель полей) в вашей полезной нагрузке. И я думаю, что это то, что портит таблицу hive. Я думаю, что ваш текст окружен кавычками, если это так, я думаю, вам лучше использовать opencsv serde.

Ответ №1:

Либо вам нужен пользовательский escape-символ в DDL, который доступен с CSVserde. Или вы могли бы использовать разделитель, отличный от запятой.