Загрузка в куст символа новой строки из CSV-файла

У нас есть файл, который имеет следующий тип:

1- Sam, Joshua , "52 DD dr,
   Lake Hiawatha" , New Jersey, 07034 
2- Ruchi,kumari,SNN Raj serenity,Bengaluru, 560068

Строка 1 разделена на 2 строки во внешней таблице, при этом остальные столбцы являются нулевыми в 1-й строке, а 2-я строка содержит остальные данные.

Нужна помощь в том, как лучше всего загрузить в один столбец, чтобы решить эту проблему. Просмотрел пару решений в сети, но не понял.

Пробовал следующие варианты:

1) Использовал Regex Serde

ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.RegexSerDe' 
WITH SERDEPROPERTIES (
"input.regex" = '"*([^"]*)"*,"*([^"]*)"*'
)

но это не сработало

2) CSVInputFormat из github https://github.com/mvallebr/CSVInputFormat

Но не умеет им пользоваться.


person Sam Berchmans    schedule 13.03.2020    source источник
comment
Загрузите свои данные в тестер регулярных выражений и посмотрите, что вы получите   -  person OneCricketeer    schedule 16.03.2020
comment
Привет, @cricket_007. Позвольте мне проверить то же самое.   -  person Sam Berchmans    schedule 16.03.2020


Ответы (1)


Я попробовал следующий вариант, и он работал для меня,

1) Тестер регулярных выражений - для этого сценария новой строки регулярное выражение очень сложное и не работает.

2) Использовать синтаксический анализатор CVS, предоставленный https://github.com/mvallebr/CSVInputFormat, а также поговорите с ним о том, как его использовать. Пробовал несколько вариантов, но не работает.

3) Быстрое простое решение — попробовать устаревший метод замены новых строк в файле с помощью оболочки или команды Perl, и он работал без сбоев. Кажется, что это более реальный и простой вариант.

person Sam Berchmans    schedule 11.05.2020