–使用场景
在实际采集场景中,主动采集或被动推送的文件字段可能含有json串,此类多是爬虫数据或是日志数据,hive提供了一类json解析函数在对此类数据通过进行预处理和清洗,此篇介绍get_json_object函数
–数据准备
此时DW中存在一张的DWD表,其中包含了json对象的字段(此表其实仍属于一类业务过程的事实表,只是字段包含了json对象,所以是存放在DWD层,而不是在ODS做处理),这里只截出其中的json字段
是一张房屋信息描述的json
–使用方法
get_json_object(column,"$.param")
其中参数column为需解析的字段,在此例中为result_contxt
第二个参数param需要分情况,若字段内容为json数组则使用 [n].key,表示第几个json对象的key值,若为单个json对象则直接 .key
因上述数据中为单个json对象,故使用第二种方式解析
使用示例:
select
get_json_object(result_contxt, "$.house_type2") as house_type2
from
库名.表名
where
p_day = '20191127'
查询结果为:
解析出全部元素:
select
get_json_object(result_contxt,'$.house_type2'