本文主要是介绍Hive-SQL获取表中复杂结构数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
数据格式基本如下:
col1
"{""couponSetting"":[{""amount"":""xxxxx"",""type"":""优惠券"",""boxxsrsarow"":""50万"",""_batchssId"":""4718"}"],""totalCount"":6,""couponExplain"":""优惠xxxxxxx选、U(服xxxxxxxx月),每xxxxxxx次。""}"
方法一:当字段col1是String类型时,我们可以直接使用中括号来获取,
select col1['key的名字']
from ods.ods_xxxx
limit 1000
方法二:当字段col1不是String类型是,我们用方法一去获取的时候会报错如下:
Error while compiling statement: FAILED: SemanticException [Error 10033]: line 1:7 [] not valid on non-collection types ''col1'': string
含义就是字段并非是String字符串类型,我们需要使用特殊处理的方式,这里我们可以使用:get_json_object(key,"$.xxx")
的方式来获取。
例如:
select
get_json_object(col1,'$.要获取的key')
from ods.ods_xxxx
where activityid='14'
这篇关于Hive-SQL获取表中复杂结构数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!