hive解析多层嵌套json数据 1.创建源表 2.创建ods层表 3.插入多层数据嵌套的json数据 4.查询数据并格式化 5.分析解析方法第一层 1.双层数组嵌套,先解开第一层嵌套 2.split方法将【hero】json数组切分成hive数组 3.explode方法将上述hive数组炸裂成多行 4.注意:第二步切分时我们并没有找到合适的切分规则,这里 ...
get_json_object案例: selectget_json_object(t.value,'$.key')askey1,get_json_object(t.value,'$.value')asvalue1from(select'{"fullvalueList":["",""],"key":"1","value":"向左"}'asvalue)t 2.split函数,是一个可以把字符串变成数组格式的函数 案例: selectsplit("A,B,C",',') 查询结...
第一步解析: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数组拆分成多行 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数组两边的中括号去掉'...
第一步解析: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数...
因为元素内的分隔也是逗号,如果不将元素之间的逗号换掉的话,后面用split函数分隔时也会把元素内的数据给分隔,这不是我们想要的结果。 上步已经把一个json数组转化为多个json字符串了,接下来结合son_tuple函数来解析json里面的字段: select json_tuple(explode(split( regexp_replace(regexp_replace('[{"website":...
为什么要将json数组元素之间的逗号换成分号? 因为元素内的分隔也是逗号,如果不将元素之间的逗号换掉的话,后面用split函数分隔时也会把元素内的数据给分隔,这不是我们想要的结果。 上步已经把一个json数组转化为多个json字符串了,接下来结合son_tuple函数来解析json里面的字段: ...
explode函数只能接收数组或 map 类型的数据,而split函数生成的结果就是数组; 第一个regexp_replace的作用是将 Json 数组元素之间的逗号换成分号,所以使用完这个函数之后, •[{"website":"www.iteblog.com","name":"过往记忆"},{"website":"carbondata.iteblog.com","name":"carbondata 中文文档"}]会变成[...
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。
有了上述几个函数,接下来我们来解析json_str字段的内容: 先将json数组中的元素解析出来,转化为每行显示: hive> SELECT explode(split(regexp_replace(regexp_replace('[{"website":"baidu.com","name":"百度"},{"website":"google.com","name":"谷歌"}]', '\[|\]',''),'\}\,\{','\}\;\...