簡體   English   中英

將數組 Athena 轉換為字符串

[英]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.

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