Presto unnest json [英] Presto unnest json

查看:985
本文介绍了Presto unnest json的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

回答这个问题:如何交叉加入unnest一个json数组presto



我尝试运行提供的示例,但是
我得到并且出错,同时这样做



SQL命令:

 
中选择xn
unnest(cast (json_extract('{payload':[{type:b,value:9},
{type:a,value:8}] }','$。payload')as array< varchar>))as x(n)

我得到的错误:

值无法转换为数组< varchar>
java.lang.RuntimeException:java.lang.NullPointerException:string is null

解决方案

SELECT JSON_EXTRACT('{payload':[{type:b,value:9},{type:a,value:8 }}}','$。payload')



给出:

[{type:b,value:9},{type:a,value:8}]

ARRAY
您可以将您的查询改为:

SELECT xn
FROM
UNNEST(CAST(JSON_EXTRACT('{payload':[ type:b,value:9},{type:a,value:8}]}','$。payload')AS ARRAY< MAP< VARCHAR ,VARCHAR>>))AS x(n)


follwing this question: how to cross join unnest a json array in presto

I tried to run the example provided but I get and error while doing so

the SQL command:

select x.n
from
unnest(cast(json_extract('{"payload":[{"type":"b","value":"9"}, 
{"type":"a","value":"8"}]}','$.payload') as array<varchar>)) as  x(n)

the error I got:

Value cannot be cast to array<varchar> java.lang.RuntimeException: java.lang.NullPointerException: string is null

解决方案

SELECT JSON_EXTRACT('{"payload":[{"type":"b","value":"9"}, {"type":"a","value":"8"}]}','$.payload')

gives:

[{"type":"b","value":"9"}, {"type":"a","value":"8"}]

which is ARRAY<MAP<VARCHAR,VARCHAR>>. you can change your query to: SELECT x.n FROM UNNEST (CAST(JSON_EXTRACT('{"payload":[{"type":"b","value":"9"},{"type":"a","value":"8"}]}','$.payload') AS ARRAY<MAP<VARCHAR, VARCHAR>>)) AS x(n)

这篇关于Presto unnest json的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆