遇到的问题--presto---提取json中的数组值为null
Posted 张小凡vip
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了遇到的问题--presto---提取json中的数组值为null相关的知识,希望对你有一定的参考价值。
情况
我们有数据结构如下:
skuIdsParams:{"skuIds":["123","456"]}
在presto中适用语句查询如下:
presto> select skuIdsParams, json_extract_scalar(skuIdsParams,\'$.skuIds\') from v_event_2 where "$part_date">\'2021-04-26\' and "$part_event"=\'VIEW_ORDER_PAGE_EVENT\' AND ( POSITION(\'new/buy/order\' IN "router") > 0 ) order by "#event_time" desc;
skuIdsParams | _col1
---------------------------------------+-------
{"skuIds":["123","456"]} | NULL
使用json_extract_scalar 提取 json中的数组 获取到的值为null
原因
json_extract_scalar用于提取标量值(数字、字符串、布尔值)。
而skuIds关联的值是一个数组。
解决方案
需要使用json_extract,json_extract返回一个JSON类型的值,其中包含一个JSON数字数组,并将其强制转换为SQL数组
把查询语句中的json_extract
以上是关于遇到的问题--presto---提取json中的数组值为null的主要内容,如果未能解决你的问题,请参考以下文章