Цитата экранировала кавычки во внешних таблицах Redshift - PullRequest
0 голосов
/ 30 января 2019

Я пытаюсь создать внешнюю таблицу в 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: и больше
...