Snowflake cloud data platform 变量列不存储具有NaN值的元素

Snowflake cloud data platform 变量列不存储具有NaN值的元素,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,我正在加载两个拼花文件,每个文件都有一行,放在Snowflake表中的一个变量列中。 当我使用python读取这两个文件并打印字段时,我看到的字段数量相同(本例中为30个)。 当我将这两个拼花文件加载到一个变量数据类型列中,并在雪花上的一个表中查询该表时,我只看到一个文件中的29个字段和另一个文件中的30个字段 当我查看这个缺失字段的python输出时,我看到一个文件有一个值(本例中为13),另一个文件有一个值为NaN 出于某种原因,Snowflake没有显示具有空值的字段 我是否需要在加载到s

我正在加载两个拼花文件,每个文件都有一行,放在Snowflake表中的一个变量列中。 当我使用python读取这两个文件并打印字段时,我看到的字段数量相同(本例中为30个)。 当我将这两个拼花文件加载到一个变量数据类型列中,并在雪花上的一个表中查询该表时,我只看到一个文件中的29个字段和另一个文件中的30个字段

当我查看这个缺失字段的python输出时,我看到一个文件有一个值(本例中为13),另一个文件有一个值为NaN

出于某种原因,Snowflake没有显示具有空值的字段


我是否需要在加载到snowflake时做一些不同的操作,以避免忽略拼花文件中没有值的字段。

将拼花文件加载到snowflake时会忽略
null
字段(或
NaN
,在拼花文件中同等对待)并在
变量
表示中使用
null
值对其进行投影。这是当前半结构化文件加载的预期行为

但是,该行为允许跨行查找不存在的字段名,当在任何行中都找不到该字段时,将返回
NULL

下面是一个示例,其中两行由于在源拼花地板文件中被视为
null
s而缺少一个字段:

>从PRQ中选择V;
+-------------------------------+                                               
|五|
|-------------------------------|
| {                             |
|“a”:1.00|
|“b”:“foo”|
| }                             |
| {                             |
|“a”:2.00|
|“b”:“酒吧”|
| }                             |
| {                             |
|“a”:3.00|
|“b”:“垃圾邮件”|
| }                             |
| {                             |
|“b”:“蛋”[缺少a]|
| }                             |
| {                             |
|“b”:“火腿”[缺少a]|
| }                             |
+-------------------------------+
由于查询
V:a
将在最后两行发出空值,因此您可以利用重新添加
NaN
s(如果数据不能真正为
null
):

>从PRQ中选择V:b,IFNULL(V:a,'NaN');
+--------+--------------------+                                                  
|V:B | IFNULL(V:A,'NAN')|
|--------+--------------------|
|“foo”| 1|
|“酒吧”| 2|
|“垃圾邮件”| 3|
|“蛋”|楠|
|“火腿”|楠|
+--------+--------------------+

将拼花文件加载到Snowflake中会忽略
null
字段(或
NaN
,在拼花文件中同等对待),并在
变量
表示中使用
null
值投影它们。这是当前半结构化文件加载的预期行为

但是,该行为允许跨行查找不存在的字段名,当在任何行中都找不到该字段时,将返回
NULL

下面是一个示例,其中两行由于在源拼花地板文件中被视为
null
s而缺少一个字段:

>从PRQ中选择V;
+-------------------------------+                                               
|五|
|-------------------------------|
| {                             |
|“a”:1.00|
|“b”:“foo”|
| }                             |
| {                             |
|“a”:2.00|
|“b”:“酒吧”|
| }                             |
| {                             |
|“a”:3.00|
|“b”:“垃圾邮件”|
| }                             |
| {                             |
|“b”:“蛋”[缺少a]|
| }                             |
| {                             |
|“b”:“火腿”[缺少a]|
| }                             |
+-------------------------------+
由于查询
V:a
将在最后两行发出空值,因此您可以利用重新添加
NaN
s(如果数据不能真正为
null
):

>从PRQ中选择V:b,IFNULL(V:a,'NaN');
+--------+--------------------+                                                  
|V:B | IFNULL(V:A,'NAN')|
|--------+--------------------|
|“foo”| 1|
|“酒吧”| 2|
|“垃圾邮件”| 3|
|“蛋”|楠|
|“火腿”|楠|
+--------+--------------------+

能否共享变量列的示例记录和用于查询的查询?能否共享变量列的示例记录和用于查询的查询?感谢您的澄清。。如果我使用variant column:element进行查询,我可以得到NULL值。。。是否有一种简单的方法可以从变量列中提取所有不同的元素,并将其展平为单独的列,如col1、col2、col3。。。所以我一直都有固定的模式,在给定文件中没有值的元素将在特定行中显示空值…感谢您的澄清。。如果我使用variant column:element进行查询,我可以得到NULL值。。。是否有一种简单的方法可以从变量列中提取所有不同的元素,并将其展平为单独的列,如col1、col2、col3。。。所以我一直都有固定的模式,给定文件中没有值的元素将在特定行中显示空值。。。