Hive复杂数组字典(Json-Array)解析
数据存储字段格式如下(Json-Array互相嵌套):
string='{"id":"9088848902695992720","title":"猛犸电动(共和新路旗舰店)","address":"上海市静安区共和新路492号","category":"购物:自行车专卖","type":0,"location":{"lat":31.251923,"lng":121.463251},"adcode":"310106","province":"上海市","city":"上海市","district":"静安区","fromSearch":1,"range":true,"name":"猛犸电动(共和新路旗舰店)","tag":false,"price":false,"description":"上海市静安区共和新路492号","area_id":"310106","business_name":"猛犸电动(共和新路旗舰店)","latitude":31.251923,"longitude":121.463251,"poi_name":"上海市 · 猛犸电动(共和新路旗舰店)","poi_id":"9088848902695992720","level":1,"selected":true,"rangeDistance":"2.0","citycode":"310000","extra_items":[{"id":"9088848902695992720","title":"猛犸电动(共和新路旗舰店)","address":"上海市静安区共和新路492号","category":"购物:自行车专卖","type":0,"location":{"lat":31.251923,"lng":121.463251},"adcode":"310106","province":"上海市","city":"上海市","district":"静安区","fromSearch":1,"range":true,"name":"猛犸电动(共和新路旗舰店)","tag":false,"price":false,"description":"上海市静安区共和新路492号","area_id":"310106","business_name":"猛犸电动(共和新路旗舰店)","latitude":31.251923,"longitude":121.463251,"poi_name":"上海市 · 猛犸电动(共和新路旗舰店)","poi_id":"9088848902695992720","level":1,"selected":true,"rangeDistance":"2.0","citycode":"310000"},{"id":"1737914136852040362","title":"猛犸电动(中山南二路旗舰店)","address":"上海市徐汇区中山南二路861号","category":"购物:自行车专卖","type":0,"location":{"lat":31.184747101,"lng":121.450555437},"adcode":"310104","province":"上海市","city":"上海市","district":"徐汇区","fromSearch":1,"range":true,"name":"猛犸电动(中山南二路旗舰店)","tag":false,"price":false,"description":"上海市徐汇区中山南二路861号","area_id":"310104","business_name":"猛犸电动(中山南二路旗舰店)","latitude":31.184747,"longitude":121.450555,"poi_name":"上海市 · 猛犸电动(中山南二路旗舰店)","poi_id":"1737914136852040362","level":1,"selected":true,"rangeDistance":"2.0","citycode":"310000"},{"id":"2079399087608466027","title":"猛犸电动专卖店(共江路店)","address":"上海市宝山区共江路204号","category":"购物:自行车专卖","type":0,"location":{"lat":31.331000146,"lng":121.456731092},"adcode":"310113","province":"上海市","city":"上海市","district":"宝山区","fromSearch":1,"range":true,"name":"猛犸电动专卖店(共江路店)","tag":false,"price":false,"description":"上海市宝山区共江路204号","area_id":"310113","business_name":"猛犸电动专卖店(共江路店)","latitude":31.331,"longitude":121.456731,"poi_name":"上海市 · 猛犸电动专卖店(共江路店)","poi_id":"2079399087608466027","level":1,"selected":true,"rangeDistance":"2.0","citycode":"310000"}]}' select poi_name_now
,get_json_object(m, '$.poi_name') as poi_name
from (
select get_json_object(string, '$.poi_name') as poi_name_now --当前门店
,get_json_object(string, '$.extra_items') as extra_it --所有门店
from table
)
LATERAL view explode(split(regexp_replace(extra_it,'^\\[|]$',''), ',(?!")')) ext_it as m
group by poi_name_now,get_json_object(m, '$.poi_name')
最终展示结果:
参考链接:https://stackoverflow.com/questions/62512180/hive-explode-each-json-element-in-json-array-to-rows
Hive复杂数组字典(Json-Array)解析的更多相关文章
- iOS 字典或者数组和JSON串的转换
在和服务器交互过程中,会iOS 字典或者数组和JSON串的转换,具体互换如下: // 将字典或者数组转化为JSON串 + (NSData *)toJSONData:(id)theData { NSEr ...
- .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
原文地址:http://www.cnblogs.com/fannyatg/archive/2012/04/16/2451611.html ------------------------------- ...
- Js前端传递json数组至服务器端并解析的实现。
最近做的一个小项目中需要将json数组数据传递到服务器端进行保存,现分享一下解决思路. 环境:EasyUi+Mvc 4.0 如下: 在上述截图中的红色圈起来的部分,需要在点击保存后通过一次ajax请求 ...
- JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串;JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
JSON.stringify()方法是将一个javascript值(对象或者数组)转换成为一个JSON字符串:JSON.parse()解析JSON字符串,构造由字符串描述的javascript值或对象
- 前台的js对象数组传到后台处理。在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>
前台的js对象数组传到后台处理.在前台把js对象数组转化为json字符串,在后台把json字符串解析为List<>
- [Cannot deserialize JSON array into type] NewtonSoft.Json解析数据出错原因
今天用NewtonSoft.JSon解析一个天气数据,数据格式如: {"status":1,"detail":"\u6570\u636e\u83b7\ ...
- Poco::JSON::Array 中object 设置preserveInsertionOrder 时,stringify出错-->深入解析
在使用poco version 1.6.0时 Poco::JSON::Array 在object 设置preserveInsertionOrder =true 时 调用 array.stringif ...
- 双数组字典树(Double Array Trie)
参考文献 1.双数组字典树(DATrie)详解及实现 2.小白详解Trie树 3.论文<基于双数组Trie树算法的字典改进和实现> DAT的基本内容介绍这里就不展开说了,从Trie过来的同 ...
- plist文件、NSUserDefault 对文件进行存储的类、json格式解析
========================== 文件操作 ========================== Δ一 .plist文件 .plist文件是一个属性字典数组的一个文件: .plis ...
随机推荐
- JUC之文章整理以及汇总
JUC文章汇总 JUC部分将学习<JUC并发编程的艺术>和<尚硅谷-大厂必备技术之JUC并发编程>进行博客的整理,各文章中也会不断的完善和丰富. JUC概述 JUC的视频学习和 ...
- QMainWindow(一)
mainwindow.h: #ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QMainWindow> class MainWindo ...
- ARTS Week 22
Algorithm 本周的 LeetCode 题目为 297. 二叉树的序列化与反序列化 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也 ...
- Java高效开发-常用idea插件
这里推荐几个常用的idea插件,可以大大提高开发的效率 所使用的idea版本为 2021.2.3 1.Jrebel and Xrebel for IntelliJ Jrebel用于热部署,避免频繁重启 ...
- /usr/local /opt
Linux 的软件安装目录是也是有讲究的,理解这一点,在对系统管理是有益的 /usr:系统级的目录,可以理解为C:/Windows/, /usr/lib理解为C:/Windows/System32. ...
- vue中清除路由缓存
beforeRouteLeave (to, from, next) { if (to.name === 'pageA') { /* pageA是需要跳转的路由 */ // console.log('返 ...
- SpringBoot集成MongoDB之导入导出和模板下载
前言 自己很对自己在项目中集成MongoDb做的导入导出以及模板下载的方法总结如下,有不到之处敬请批评指正! 1.pom.xml依赖引入 <!-- excel导入导出 --> <de ...
- 一起玩转玩转LiteOS组件:TinyFrame
摘要:TinyFrame是一个简单的用于解析串口(如 UART.telnet.套接字等)通信数据帧的库. 本文分享自华为云社区<LiteOS组件尝鲜-玩转TinyFrame>,作者:Lio ...
- django之django-debug-toolbar调试工具配置与使用
外部链接:https://blog.csdn.net/weixin_39198406/article/details/78821677 django-debug-toolbar的作用:进行性能调优,与 ...
- plsql 视图中 为什么使用替代触发器
/* 什么是视图? 视图:数据库对象,存的是一个查询命令:当作一个虚拟的数据表来使用: 应用场景: 简化查询操作:不能直接在视图上进行create,insert,update操作: 创建视图? 需要管 ...