将数据从S3加载到RedShift时如何处理布尔NULL值?

时间:2018-12-21 15:07:35

标签: scala amazon-web-services amazon-s3 amazon-redshift

我正在将布尔值解析为字符串,以便将它们保存到其他数据中的csv文件中并加载到S3中。然后将文件加载到RedShift。我希望布尔列包含true / false以及null值(例如NULL,N / A或仅是一个空单元格)。

在RedShift中阅读关于布尔值的documentation之后,我决定将空值存储为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 :(得分:0)

您应该对COPY命令使用NULL AS选项。或使用其默认值'\N'

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