在 Presto 中提取 Json

Extract Json in Presto

我得到了一些 json 的复杂格式的数据,这既不是纯 json 也不是数组。

我尝试使用以下无效的查询来提取特定值

SELECT json_array_extract_scalar(bankdetails, '$.bank') FROM ade.evangelist_oao.oaocustomfundingupdateaoapplicationsvc ;

Query failed (#20200717_121411_01261_cav8k): line 1:8: Unexpected parameters (row(bank varchar), varchar(6)) for function json_extract_scalar. Expected: json_extract_scalar(varchar(x), JsonPath) , json_extract_scalar(json, JsonPath) [DB Errorcode=1]

SELECT json_extract_scalar(accounts, '$.fundingsrcs.method') FROM ade.evangelist_oao.oaocustomfundingupdateaoapplicationsvc ;

Query failed (#20200717_121600_01270_cav8k): line 1:8: Unexpected parameters (array(row(fundingsrcs array(row(method varchar,amount bigint)))), varchar(20)) for function json_extract_scalar. Expected: json_extract_scalar(varchar(x), JsonPath) , json_extract_scalar(json, JsonPath) [DB Errorcode=1]

在这种情况下,如何获取 bankdetails 字段的 b840 值和 accounts 字段的 CUSTOMFUNDING 值?

实际类型是ROW(不是JSON),所以可以用

取值
SELECT bankdetails.bank FROM ...