【问题标题】:Partial Loading Due to " in data - Snowflake Issue由于数据中的“雪花问题”导致部分加载
【发布时间】:2020-07-29 14:44:47
【问题描述】:

我无法找到任何描述我遇到的这个问题的信息,但我相信很多人都遇到过这个问题。它可能就像在加载数据之前强制在 Python 中进行预处理一样简单。

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

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

在表定义中,这些列被设置为 DEFAULT NULL,所以如果这里有 NULL 值它应该能够处理它们。我在 Python 中打开了文件以检查这些列,并且确实有些行(在 Snowflake 中引发错误的确切数字)是 NaN。

有没有办法在 Snowflake 中纠正这个问题?

【问题讨论】:

    标签: sql snowflake-cloud-data-platform


    【解决方案1】:

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

    NULL_IF = ('NaN')
    

    如果您有多个 NaN 值(例如“NULL”的实际字符串),那么您可以将它们添加到上面 () 中的列表中。

    【讨论】:

    • 迈克我很欣赏这个答案的方向。我应该稍微推迟一下,因为我最终找到了我将添加作为该线程答案的解决方案。简而言之,NULL_IF 更改需要在 FILE FORMAT 配置中进行。
    【解决方案2】:

    如果您在将数据加载到表(来自任何来源)时遇到问题,并且遇到与上述问题类似的问题,例如错误告诉您*datatype* '' is not recognized,那么您需要按照以下说明操作:

    • 通过“数据库”选项卡进入您正在使用的FILE_FORMAT
    • 选择FILE_FORMAT并点击工具栏中的编辑
    • 点击左下角出现的Show SQL,复制语句
    • 将语句粘贴到工作表中并更改NULL_IF 语句,如下所示
    • NULL_IF = ('\\N','');

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-12
      • 1970-01-01
      • 1970-01-01
      • 2021-09-03
      • 1970-01-01
      • 2020-10-07
      • 1970-01-01
      相关资源
      最近更新 更多