Как разбить строку на столбцы, где разделитель символов и запятая, но этот символ отображается как содержимое полей

#hive #hiveql

#улей #hiveql

Вопрос:

Я выполняю загрузку данных, где каждая строка содержит символы «в начале и конце полей и запятую в качестве разделителя, как показано ниже:

 "sU92", "eRouter1.0"
"sU92" "," eRouter1.0 "
"sU9.2", "eRouter1.0"
  

Обратите внимание, что во второй строке есть 2 двойные кавычки (2 «) и что в третьей строке есть запятая между числами 9 и 2 (9,2).

Всякий раз, когда я пытаюсь создать таблицу с разделителем, равным запятой и с quotechar = ' "' , записи прерываются.

Ответ №1:

Создать таблицу без включения отмены кавычек, использовать LasySimpleSerDe (по умолчанию)

 create table mytable(
col1 string,
col2 string) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' ;
  

Затем снимите кавычки со строк и удалите лишние пробелы при выборе, используя, например regexp_replace :

trim(regexp_replace(str, '\"',''))