Я пытаюсь создать внешнюю таблицу в Redshift из CSV, в котором есть кавычки, в которых есть кавычки, как описано в rfc4180 :
Если двойные кавычкииспользуется для включения полей, тогда двойная кавычка, появляющаяся внутри поля, должна быть экранирована, если ей предшествует еще одна двойная кавычка.
Например: "aaa", "b" "bb", "ccc"
Я не получаю ошибок, но финальная таблица имеет значение 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://';
Ожидаемые результаты:
- поле a: некоторый «текст»
- поле b: еще немного текста
- поле c: больше, текст
- поле d: и больше
Фактический результат:
- поле a:
null
- фантастполе b: еще немного текста
- поле c: больше, текст
- поле d: и больше