由于数据中存在“部分加载-雪花问题”

时间:2020-07-29 14:44:47

标签: sql snowflake-cloud-data-platform

我无法找到任何描述我所遇到的问题的信息,尽管我确信很多人都遇到了此问题。就像在加载数据之前在Python中强制进行预处理一样简单。

我正在尝试将数据从S3加载到Snowflake表中。我看到以下错误:

  • 无法识别数字值”
  • 时间戳“”无法识别

在表定义中,这些列设置为DEFAULT NULL,因此,如果此处有NULL值,则应该能够处理它们。我用Python打开了文件以检查这些列,并确保其中的某些行(在Snowflake中抛出错误的确切数字)是NaN。

在Snowflake中有没有办法对此进行纠正?

2 个答案:

答案 0 :(得分:1)

您需要在COPY INTO语句中添加一些内容才能使其正确执行。在格式选项中尝试以下参数:

NULL_IF = ('NaN')

如果您不仅具有NaN值(例如'NULL'的实际字符串),还可以将其添加到上述()中的列表中。

答案 1 :(得分:0)

如果您在从任何源将数据加载到表中时遇到问题,并且遇到与上述问题类似的问题,从而错误告诉您*datatype* '' is not recognized,那么您将需要遵循以下说明:

  • 通过“数据库”标签进入您正在使用的FILE_FORMAT
  • 选择FILE_FORMAT,然后在工具栏中单击“编辑”
  • 在出现的左下方窗口上单击Show SQL,复制语句
  • 将该语句粘贴到工作表中,并按如下所示更改NULL_IF语句
  • NULL_IF = ('\\N','');

默认情况下,雪花似乎无法识别完全为空的值,因此您需要将其添加为选项!