hive解析多层嵌套json数据 1.创建源表 2.创建ods层表 3.插入多层数据嵌套的json数据 4.查询数据并格式化 5.分析解析方法第一层 1.双层数组嵌套,先解开第一层嵌套 2.split方法将【hero】json数组切分成hive数组 3.explode方法将上述hive数组炸裂成多行 4.注意:第二步切分时我们并没有找到合适的切分规则,这里 ...
第一步解析:json数组拆分成多行 sql语句: 代码语言:javascript 复制 SELECTexplode(split(regexp_replace(regexp_replace('[{"user_id":"1","name":"小琳","age":16},{"user_id":"2","name":"小刘","age":18},{"user_id":"3","name":"小明","age":20}]','\\[|\\]',''),将json数...
第一步解析:json数组拆分成多行 sql语句: 复制 SELECTexplode(split(regexp_replace(regexp_replace('[{"user_id":"1","name":"小琳","age":16},{"user_id":"2","name":"小刘","age":18},{"user_id":"3","name":"小明","age":20}]','\\[|\\]',''),将json数组两边的中括号去掉'...
意思是UDTF函数不能写在别的函数内,也就是这里的explode函数不能写在get_json_object里面。 既然explode函数不能写在别的json_tuple里面,那我们可以用子查询方式,如下所示: select get_json_object(json_udtf,'$.eventid') from (select explode(split(regexp_replace(regexp_replace('[{"eventid":"1040","...
因为元素内的分隔也是逗号,如果不将元素之间的逗号换掉的话,后面用split函数分隔时也会把元素内的数据给分隔,这不是我们想要的结果。 上步已经把一个json数组转化为多个json字符串了,接下来结合son_tuple函数来解析json里面的字段: select json_tuple(explode(split( regexp_replace(regexp_replace('[{"website":...
第一步解析:json数组拆分成多行 sql语句: SELECT explode(split( regexp_replace( regexp_replace( '[ {"user_id":"1","name":"小琳","age":16}, {"user_id":"2","name":"小刘","age":18}, {"user_id":"3","name":"小明","age":20} ]', '\\[|\\]' , ''), 将json数组两边...
为什么要将json数组元素之间的逗号换成分号? 因为元素内的分隔也是逗号,如果不将元素之间的逗号换掉的话,后面用split函数分隔时也会把元素内的数据给分隔,这不是我们想要的结果。 上步已经把一个json数组转化为多个json字符串了,接下来结合son_tuple函数来解析json里面的字段: ...
explode函数只能接收数组或 map 类型的数据,而split函数生成的结果就是数组; 第一个regexp_replace的作用是将 Json 数组元素之间的逗号换成分号,所以使用完这个函数之后, •[{"website":"www.iteblog.com","name":"过往记忆"},{"website":"carbondata.iteblog.com","name":"carbondata 中文文档"}]会变成[...
有了上述几个函数,接下来我们来解析json_str字段的内容: 先将json数组中的元素解析出来,转化为每行显示: hive> SELECT explode(split(regexp_replace(regexp_replace('[{"website":"baidu.com","name":"百度"},{"website":"google.com","name":"谷歌"}]', '\[|\]',''),'\}\,\{','\}\;\...
split regexp_replace regexp_extract 这几个函数,应该可以随意解析json字段了 get_json_object get_json_object(json_string, '$.key') 1. 字面意思获取json的object,我们知道json是键值对的形式,所以只要我们有key就可以得到value,比如python里的dict[key] 可以得到value。