Как обработать логические значения NULL при загрузке данных из S3 в RedShift? - PullRequest
0 голосов
/ 21 декабря 2018

Я анализирую логические значения в строках, чтобы они были сохранены в csv файлах среди других данных и загружены в S3.Затем файлы загружаются в RedShift.Я хочу, чтобы логические столбцы содержали значения true / false, а также нулевые значения (например, NULL, N / A или просто пустую ячейку).

После прочтения документации о логических значениях в RedShift Iрешил хранить нулевые значения как NULL.Согласно документу NULL является допустимым логическим значением.Вот как я анализировал логические значения в строках:

  private def parseBooleans(value: Option[Boolean]): String = {
    value match {
      case Some(true) => "true"
      case Some(false) => "false"
      case None => "NULL"
    }
  }

Однако я получаю ошибку 1210 Unknown boolean format.Я также пытался передать "N / A", но это также не работает.

Как можно передать нулевые значения в логические столбцы в таблице RedShift?

1 Ответ

0 голосов
/ 26 декабря 2018

Вы должны использовать опцию NULL AS для команды COPY.Или используйте его значение по умолчанию '\N'.

COPY mytable
FROM 's3://path' 
NULL AS 'NULL'
...