在Snowflake中给出此示例表:
CREATE OR REPLACE TABLE vnt
(src variant)
AS SELECT parse_json(column1) as src
FROM values
('{"a": 1,"b": 2,"c": 3}'),
('{"a": 1,"b": 2,"c": 3,"d": 4}');
select * from vnt;
我想输出一个包含两行的表,例如
a | b | c | d |
---|---|---|---|
1 | 2 | 3 | NULL |
1 | 2 | 3 | 4 |
这意味着我希望将JSON数据展平为列,而不是行. 我试着在雪地公园把它压平,但我对枢轴有问题,因为它不起作用.既然密钥可以动态变化,我该如何处理呢?
import snowflake.snowpark as snowpark
def main(session: snowpark.Session):
df = session.sql("select * from vnt")
df = df.join_table_function("flatten", df["SRC"]) \
.drop(["SEQ", "SRC", "PATH", "INDEX", "THIS"])
df = df.pivot("VALUE",['a','b','c','d']).min("KEY")
# Return value will appear in the Results tab.
return df