[英]Convert Array Athena into String
我目前在 Athena 中有一個 JSON output 作為數組:
這是我正在運行的查詢
WITH dataset AS (SELECT
Items
FROM
(SELECT * FROM (
SELECT
JSON_EXTRACT(message, '$.items') AS Items
FROM kafka.database
)))
select * from dataset
LIMIT 10
這是當前的輸出
["item0","item1","item2","item3"]
但想以這種方式從 AWS Athena 生成輸出:
"item0,item1,item2,item3"
我嘗試按照 Athena 文檔中的這些步驟操作,但它不起作用:
WITH dataset AS (SELECT
Items
FROM
(SELECT * FROM (
SELECT
array_join(JSON_EXTRACT(message, '$.items'),' ') AS Items
FROM kafka.database
)))
select * from dataset
LIMIT 10
但是例如,通過這種方式,我可以 select JSON output 中的第一項。
WITH dataset AS (SELECT
Items
FROM
(SELECT * FROM (
SELECT
json_array_get(JSON_EXTRACT(message, '$.items'),0) AS Items
FROM kafka.database
)))
select * from dataset
LIMIT 10
JSON_EXTRACT
不返回array
,它返回json
類型的值,因此不支持直接將其作為數組操作。 處理它的一種方法是將其強制轉換為array(varchar)
並在其上使用array_join
:
-- sample data
WITH dataset (json_arr) AS (
VALUES (json '["item0","item1","item2","item3"]')
)
-- query
select array_join(cast(json_arr as array(varchar)), ', ')
from dataset;
Output:
_col0 |
---|
第 0 項,第 1 項,第 2 項,第 3 項 |
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.