变体列用逗号分隔文件中的 json 个值?
Variant column separate json values in file by comma?
这是一个基本问题,我试图将一个变体行分成多列并且 运行 出现错误。
Create or replace table App_versions(data variant);
CREATE or Replace FILE FORMAT x_json
TYPE = "JSON"
COMPRESSION = "GZIP"
FILE_EXTENSION= 'json.gz'
COPY INTO App_versions
FROM @~/staged
file_format = 'x_json'
on_error = 'skip_file';
list @~;
SELECT * FROM App_versions limit 10;
Select data:available,value::boolean as avail, data:color.value::string as col, data:name.value::string as title, data:version.value::float as version from App_versions;
Data Stored in Column
[
{
"available": false,
"color": "Indigo",
"name": "Bigtax",
"version": "2.2.9"
},
{
"available": false,
"color": "Khaki",
"name": "Solarbreeze",
"version": "7.00"
}
]
而我运行进入的列全部为Null值。我究竟做错了什么?
我基于:https://support.snowflake.net/s/article/json-data-parsing-in-snowflake
如果您希望每个 { ... }
对象都位于其自己的行中,请使用 STRIP_OUTER_ARRAY = TRUE
文件格式选项。或者您可以在加载后即时 FLATTEN() 数据。要在不展平的情况下访问单行中的多个对象,您必须包含一个索引来指定您想要的对象——例如... select data[0].available::boolean as avail ...
.
这是一个基本问题,我试图将一个变体行分成多列并且 运行 出现错误。
Create or replace table App_versions(data variant);
CREATE or Replace FILE FORMAT x_json
TYPE = "JSON"
COMPRESSION = "GZIP"
FILE_EXTENSION= 'json.gz'
COPY INTO App_versions
FROM @~/staged
file_format = 'x_json'
on_error = 'skip_file';
list @~;
SELECT * FROM App_versions limit 10;
Select data:available,value::boolean as avail, data:color.value::string as col, data:name.value::string as title, data:version.value::float as version from App_versions;
Data Stored in Column
[
{
"available": false,
"color": "Indigo",
"name": "Bigtax",
"version": "2.2.9"
},
{
"available": false,
"color": "Khaki",
"name": "Solarbreeze",
"version": "7.00"
}
]
而我运行进入的列全部为Null值。我究竟做错了什么? 我基于:https://support.snowflake.net/s/article/json-data-parsing-in-snowflake
如果您希望每个 { ... }
对象都位于其自己的行中,请使用 STRIP_OUTER_ARRAY = TRUE
文件格式选项。或者您可以在加载后即时 FLATTEN() 数据。要在不展平的情况下访问单行中的多个对象,您必须包含一个索引来指定您想要的对象——例如... select data[0].available::boolean as avail ...
.