presto json_extract_scalar的用法和hive get_json_object的用法

在应用SQL查询数据库的时候,有时我们需要自己解析数据出来用,json解析就是一个很好的工具,先在hive里开发建一个临时的表格,再提取该临时表就可以用啦

select json_extract_scalar (properties,’$.type’)as type
properties是存储json的字段,type是你想要解析的内容。

Hive
select get_json_object(json, ‘$.book’);

Presto
select json_extract_scalar(json, ‘$.book’);

Presto是一种用于分布式数据处理的开源查询引擎,它支持使用SQL语言对各种数据源进行查询。在Presto中,可以使用多种方式来解析JSON并获取字段值。 根据引用,可以使用GET_JSON_OBJECT函数来解析JSON并提取字段值。示例SQL语句如下: SELECT GET_JSON_OBJECT(json_str, '$.id') AS sid FROM ( SELECT json_str FROM ( SELECT split(regexp_replace(regexp_extract(event_param_json, '^\\[(.*)\\]$', 1), '\\}\\,\\{', '\\}\\|\\|\\{'), '\\|\\|') AS json_list FROM abm.abm_wireless_exposure_log WHERE dt = '2020-09-06' AND page_id = 'ManChannel' AND event_param_json LIKE '%ass%' ) a LATERAL VIEW explode(json_list) list_tab AS json_str ) t 引用中提到了另一种使用GET_JSON_OBJECT函数的方法来解析JSON并获取字段值。 还可以使用JSON_EXTRACT_SCALAR函数来解析JSON并提取字段值,如引用所示。示例SQL语句如下: SELECT str_json, JSON_EXTRACT_SCALAR(str_json, '$.id') AS sid FROM ( SELECT event_param_json FROM abm.abm_wireless_exposure_log WHERE dt = '2020-09-06' AND event_id = 'NecProExpo' AND event_param_json LIKE '%ass%' ) CROSS JOIN unnest(SPLIT(REPLACE(REPLACE(REPLACE(event_param_json, '[', ''), ']', ''), '},{', '}#{'), '#')) AS t(str_json) 使用以上的SQL语句,你可以在Presto中解析JSON并获取字段值。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [hivepresto解析json数组并拆分为多行](https://blog.youkuaiyun.com/lzxlfly/article/details/108458110)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值