Создание таблицы спектров в 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 нет стандарта, каждый инструмент реализует свою собственную версию поддержки, и очень сложно убедить все ваши инструменты видеть данные одинаково.