Hive - загрузка данных с разделителями со специальным символом, причина выключена - PullRequest
0 голосов
/ 07 мая 2018

Допустим, я хочу создать простую таблицу с 4 столбцами в Hive и загрузить некоторые данные, разделенные каналом.

CREATE table TEST_1 (
COL1  string,
COL2  string,
COL3  string,
COL4  string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|'
;

Необработанные данные:

123|456|Dasani Bottled \| Water|789

То, что я ожидаю для значения Col3, это " Dasani Bottled \ | Water ", в центре которого есть какой-то специальный символ " \ | ", таким образом, столбец таблицы Hive отключается, начиная с позиции. на COL3, потому что я создаю таблицу, используя " | " в качестве разделителя. Специальный символ \ | есть труба | символ внутри него.

Есть ли способ решить проблему, чтобы Hive мог правильно загрузить данные?

Спасибо за любую помощь.

1 Ответ

0 голосов
/ 08 мая 2018

вы можете добавить предложение ESCAPED BY к вашему созданию таблицы таким образом, чтобы позволить символу экранировать

CREATE table TEST_1 (
COL1  string,
COL2  string,
COL3  string,
COL4  string
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '|' ESCAPED BY '\'
;

Из документации на Улей

Включить экранирование для символов-разделителей, используя 'ESCAPED BY' предложение (например, ESCAPED BY '\') Экранирование необходимо, если вы хотите работать с данными, которые могут содержать эти символы-разделители.

Пользовательский формат NULL также может быть указан с помощью 'NULL DEFINED AS' предложение (по умолчанию '\ N').

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