Цитата экранировала кавычки во внешних таблицах 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: и больше

0 ответов

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