簡體   English   中英

如何將 json object 轉換為 prestodb/athena 中的數組

[英]How to convert json object into array in prestodb/athena

我有一個 JSON object,格式data = {"1": {"col1":"a", "col2":"b"}, "2": {"col1":"c", "col2":"d"}....,"99":{"col1":"asd", "col2":"exm"}}. 我想使用 athena 獲取 col_1 和 col_2 的所有值。 我如何使用雅典娜實現這一目標?

我能夠通過將其轉換為 Map 然后將其取消嵌套來解決它

select key, value from table where unnest(cast(json_parse(data) as Map(varchar,JSON)) as t(key,value))

忽略它是 JSON 格式(因為它不夠簡單)並使用正則表達式 function:

SELECT regexp_extract_all(column_data, '"col1":"([a-z]+)",'); -- [a, c, ... asd]

暫無
暫無

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

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