Цитата экранировала кавычки во внешних таблицах Redshift
Я пытаюсь создать внешнюю таблицу в Redshift из CSV, в котором есть кавычки, экранированные кавычки, как описано в rfc4180:
Если двойные кавычки используются для включения полей, то двойная кавычка, появляющаяся внутри поля, должна быть экранирована, предшествуя другой двойной кавычке.
Например: "ааа", "б", "бб", "ссс"
Я не получаю ошибок, но финальная таблица имеет null
значение, где моя строка должна быть.
Есть ли способ сказать Redshift, чтобы понять этот формат CSV при создании внешней таблицы?
Я не хочу менять форматирование файла CSV.
Пример CSV:
"some ""text""",some more text,"more, text",and more
Пример создания внешней таблицы:
create external table spectrum.spectrum_test_quote(
a varchar(32),
b varchar(32),
c varchar(32),
d varchar(32)
)
row format serde 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
with serdeproperties (
'separatorChar' = ',',
'quoteChar' = '\"',
'escapeChar' = '\\'
)
stored as textfile
location 's3://';
Ожидаемые результаты:
- поле а: какой-то "текст"
- поле б: еще текст
- поле c: больше, текст
- поле d: и больше
Фактический результат:
- поле а:
null
- поле б: еще текст
- поле c: больше, текст
- поле d: и больше