在 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 ...
我得到了一些 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 ...