Hive внешняя таблица, разделенная запятыми, но запятая присутствует в данных - PullRequest
0 голосов
/ 23 мая 2019

У меня есть некоторые данные, поступающие из внешнего источника в формате:

user_id, user_name, project_name, position
"111", "Tom Petty", "Heartbreakers", "Vocals"
"222", "Ringo Starr", "Beatles, The", "Drummer"
"333", "Tom Brady", "Patriots", "QB"

И я создаю свою внешнюю таблицу таким образом:

CREATE EXTERNAL TABLE tab1 (
USER_ID String,
USER_NAME String,
PROJECT_NAME String,
POSITION String
) 
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
STORED AS TEXTFILE
LOCATION '/user/blah/foo'

Проблема возникает, когда данные в некоторыхв столбцах есть запятые, например, Beatles, The.Это приводит к тому, что Hive помещает слово The в следующий столбец (позицию) и удаляет данные в последнем столбце.

Все поля входящих данных заключаются в двойные кавычки, но они разделяются запятыми, даже если ониможет иметь запятые в них.К сожалению, отправитель очищает данные - не вариант.

Как я могу создать эту таблицу?

Ответы [ 2 ]

1 голос
/ 27 мая 2019

попробуйте

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
   "separatorChar" = "\t",
   "quoteChar"     = "\""
)  
1 голос
/ 26 мая 2019

Вы можете попробовать использовать Open CSV Serde при создании таблицы улья, используя определенные свойства serDe.

https://cwiki.apache.org/confluence/display/Hive/CSV+Serde

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...