簡體   English   中英

Presto-提取數組中的鍵

[英]Presto - Extract Key in an Array

我有這個樣本數據(來自雅典娜)

 SELECT DISTINCT m.key
  FROM (VALUES JSON '{"name":"project1","completed":false}', JSON '{"name":"project1","completed":false}',JSON '{"name":"project1","completed":false}')
     example_table(json_column)
 CROSS JOIN UNNEST (map_keys(CAST(json_column AS map<varchar,json>))) AS m(key);

 WITH dataset AS (
  SELECT '{"name": "Susan Smith",
           "org": "engineering",
           "projects": [{"name":"project1", "completed":false},
           {"name":"project2", "completed":true}]}'
    AS blob
)
select * from dataset

這將生成以下輸出。

{"name": "Susan Smith", "org": "engineering", "projects": [{"name":"project1", "completed":false}, {"name":"project2", "completed":true}]}

我想從輸出中提取Key。

預期產量:

output
------
name
org
projects

有人可以幫忙嗎?

更新:

使用正確的JSON編輯了此問題。

根據評論中的討論,

map_keys(CAST(json_column AS map<varchar,json>))

需要替換為

map_keys(CAST(CAST(json_column AS JSON) AS map<varchar,json>))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM