由于数据中的“雪花问题”导致部分加载
Posted
技术标签:
【中文标题】由于数据中的“雪花问题”导致部分加载【英文标题】:Partial Loading Due to " in data - Snowflake Issue 【发布时间】:2020-07-29 14:44:47 【问题描述】:我无法找到任何描述我遇到的这个问题的信息,但我相信很多人都遇到过这个问题。它可能就像在加载数据之前强制在 Python 中进行预处理一样简单。
我正在尝试将数据从 S3 加载到雪花表中。我看到如下错误:
无法识别数值“” 无法识别时间戳“”在表定义中,这些列被设置为 DEFAULT NULL,所以如果这里有 NULL 值它应该能够处理它们。我在 Python 中打开了文件以检查这些列,并且确实有些行(在 Snowflake 中引发错误的确切数字)是 NaN。
有没有办法在 Snowflake 中纠正这个问题?
【问题讨论】:
【参考方案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 似乎无法识别完全空的值,因此您需要将其添加为选项!
【讨论】:
以上是关于由于数据中的“雪花问题”导致部分加载的主要内容,如果未能解决你的问题,请参考以下文章