雪花从s3 json读取为null

时间:2020-07-18 01:28:55

标签: json amazon-s3 null snowflake-cloud-data-platform

这似乎很容易,但是对于我在星期五晚上的一生来说……

我有一个要从s3中读取的json文件

{"name":"bob", "currentTime":"null"}

我在雪花中创造了一个舞台。

我这样做的时候

Select $1:name, $2:currentTime 
from @myStage/mydocument

我得到了预期的结果

$ 1:name $ 2:currentTime

“ bob”“ null”

我有一张雪花桌子

create table test_bob
(
name varchar
,currentTime TIMESTAMP_NTZ
)

但是当我这样做

Copy into test_bob
Select $1:name, $2:currentTime 
    from @myStage/mydocument

我得到一个错误

Failed to cast variant value "null" to TIMESTAMP_NTZ

我尝试使用 NULL_IF 如建议的here

我尝试使用STRIP_NULL_VALUES作为文件格式

1 个答案:

答案 0 :(得分:1)

看起来您有一个字符串“ null”而不是null值。你尝试过吗?

Copy into test_bob
Select $1:name, NULLIF($2:currentTime::string,'null')::timestamp_ntz 
    from @myStage/mydocument

这应该在尝试将json属性对象转换为timestamp_ntz之前检查字符串的值。