Hive处理json数组
思路:使用正则替换json数组内部json串之间的逗号。"},{" -----> "}|{",再使用炸裂函数lateral view explod(split(col,"|"))将列转行,最后使用get_json_object()单独处理每个展开行的数据。
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函数以分号作为分隔) );