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 ...
随机推荐
- gorm中的高级查询
智能选择字段 GORM 允许通过 Select 方法选择特定的字段,如果您在应用程序中经常使用此功能,你也可以定义一个较小的结构体,以实现调用 API 时自动选择特定的字段,例如: type User ...
- MySQL数据类型操作(char与varchar)
目录 一:MySQL数据类型之整型 1.整型 2.验证不同类型的int是否会空出一个存储正负号 3.增加约束条件 去除正负号(unsigned) 二:浮点型 1.浮点型 2.验证浮点型精确度 三:字符 ...
- python函数关键字实参传参
#!/usr/bin/python #coding=utf-8 #好好学习,天天向上 def describe_pet(type,name): print(f"i have a {type} ...
- 人口信息普查系统-JavaWeb-五
今天分享人口普查系统删除查询前端代码 <%@ page language="java" contentType="text/html; UTF-8" pa ...
- Loadrunner11录制移动端测试脚本(原文:http://blog.csdn.net/zhailihua/article/details/73610317)
一.LR配置 1)LR设置代理,利用手机录制脚本 1-协议选择Web(HTTP/HTML)协议即可 2-录制开始前,对Recoding Options中的Port Mapping配置如下 a.新建Ne ...
- 新一代Python包管理工具来了
1 简介 说起Python的包管理工具,大家第一时间想到的肯定是pip.conda等经典工具.但最近我发现了一款新颖的Python包管理工具--pdm,它受到PEP582(https://www.py ...
- 支付宝同步请求检查appid,以及公钥,私钥是否正确
第一步:下载支付宝Demo 下载地址:https://opendocs.alipay.com/open/270/106291#%E8%BF%90%E8%A1%8C%E8%AF%B4%E6%98%8E ...
- docker的使用 (2)
使用Docker 想要玩转Docker,最简单的办法就是马上用Docker创建一些自己学习和工作中需要用到的容器,下面我们带着大家一起来创建这些容器. 运行Nginx Nginx是高性能的Web服务器 ...
- JavaIO 思维导图
网络搜集,万分感谢!
- FileOutStream
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import ja ...