Создание таблицы спектров в matillion для csv файла с запятой внутри кавычек

У меня есть сценарий создания таблицы спектра в красном смещении с использованием matillion. мои данные файла CSV выглядят следующим образом:-

column1,column2,column3
abc,"qwety,pqr",xyz

но в таблице спектра я вижу данные как

column1 column2 column3
abc qwerty pqr

Matillion не принимает значения котировок за единицу. Не могли бы вы подсказать, как этого добиться, используя компонент EXTERNAL TABLE от matillion.

1 ответ

Обычно вы хотите указать параметр цитаты для ваших данных CSV.

Redshift имеет 2 способа указать внешние таблицы (см. Документацию Redshift для справки):

  • используя встроенные SerDes по умолчанию и свойства, такие какROW FORMAT DELIMITED, FIELDS TERMINATED BY
  • явное указание SerDe сROW FORMAT SERDE, WITH SERDEPROPERTIES

Я не думаю, что можно указать параметр цитаты с помощью встроенного SerDes.

Их можно указать с помощью org.apache.hadoop.hive.serde2.OpenCSVSerde(подробности о его свойствах см. здесь), но имейте в виду, что с ним связаны известные проблемы, как описано в этом вопросе SO.

Теперь о Метиллионе:

Я никогда не использовал Matillion, но, глядя на их страницу документации Redshift External Table, похоже, что можно указать толькоFORMAT и FIELD TERMINATOR, но не указывать SerDe и его свойства, поэтому невозможно указать параметры цитаты для внешней таблицы - если нет каких-либо недокументированных средств для указания настраиваемого SerDe.

Личное примечание: мы столкнулись с множеством проблем с получением данных, хранящихся в формате CSV, и в основном стараемся их избегать. Для CSV нет стандарта, каждый инструмент реализует свою собственную версию поддержки, и очень сложно убедить все ваши инструменты видеть данные одинаково.

Другие вопросы по тегам