json的扁平化分为hive、spark、UDF:自定义函数

Hive JSON扁平化:
regexp_replace  //正则表达式替换
str_to_map        //字符串转成map 一行映射为一个字段
get_json_object  //获取json对象json 的扁平化 : json表 一个字段line -> SELECT ... -> INSERT INTO 表名 SELECT ...

Linux本地准备数据


linux> vi jsontest2.txt

原数据:
{"eventid": "applexxxEvent","event": {"pgId": "1","contentType": "Y","contentID": "1","contentTile": "","contentChannel": "","contentTag": "Y"},"user": {"uid": "123","account": "","email": "xxx@xxx.com","phoneNbr": "13xxxxxxxx0","isLogin": "lisi","gender": "y","phone": {"mac": "2x-xx-xx-xx-xx-xx-xx","osName": "ios","osVer": "15.0","resolution": "1024*768","uuid": "xxxxxxxxxxxxE"}},"timestamp": "1658155550000000"}{"eventid": "applexxxEvent","event": {"pgId": "2","contentType": "Y","contentID": "2","contentTile": "","contentChannel": "","contentTag": "Y"},"user": {"uid": "124","account": "","email": "xxx@xxx.com","phoneNbr": "13xxxxxxxx0","isLogin": "lisi2","gender": "x","phone": {"mac": "2x-xx-xx-xx-xx-xx-xx","osName": "ios","osVer": "15.0","resolution": "1024*768","uuid": "2xxxxxxxxxxxE"}},"timestamp": "1658155550000001"}
#1.创建表
hive>create table logs2(
line string
);#2.导入数据
hive>load data local inpath '/root/data/jsontest2.txt' into table logs2;#3.创建提取值的表
create table test(
eventid string,
event map<string,string>,
uuid string,
timestamp    bigint
)
stored as orc;#4.将json扁平提取需要的值
insert into test
select
get_json_object(line,'$.eventid') as eventid,
str_to_map(regexp_replace(get_json_object(line,'$.event'),'\\{|\\}|\\"','')) as event,
get_json_object(line,'$.user.phone.uuid')  as uuid,
get_json_object(line,'$.timestamp') as timestamp
from logs2#5.查看数据
SELECT eventid,event['pgId'] ,event['contentTag'],uuid,timestamp  FROM test;

Hive JSON扁平化相关推荐

  1. Java:JSON扁平化和去扁平化

    今天小编在github上发现了一个比较好的JSON扁平化和去扁平化处理方法,话不多说,直接开干. 1.扁平化数据(网上找的一json大串) "{\"type\":10,\ ...

  2. 利用递归实现JSON扁平化

    1.引入JSON依赖包 把字符串解释成JSON再进行扁平化处理         <dependency>             <groupId>com.alibaba< ...

  3. 树形json扁平化,一维数组树状化,对象深拷贝,元素后插入新元素,格式或动态路由等常用js合集

    索引 一.在元素后面插入一个新的元素. 二.对象或者数组的深拷贝. 三.从服务器端获取到动态路由表的格式化. 四.json树形数据扁平化处理(变成一维数组) 五.一维数组转化为树状结构对象. 六.防抖 ...

  4. JSON——Json对象扁平化

    一个层级结构很深的json对象 下面的代码是JSON扁平化的帮助类: 声明: 由于层级的json对象中名字可能会有重复,所有扁平化时key值带上了父级的key 使用一个key的list列表,来判断是否 ...

  5. 利用Gson对json进行flatten(扁平化)处理

    目录 一.Gson的简单介绍 二.通过构建json树实现两层json的解析 三.通过递归实现多层json的解析 一.Gson的简单介绍 Gson是Google发布的一个处理json的java库.通过使 ...

  6. JSON数据处理之扁平化对象输出

    有时候返回json的数据中的属性存在在多个对象之中.我们期望它能够整合起来,去掉对象的外衣.这个简单理解为对象扁平化 @Getter @Setter @ToString public class Ac ...

  7. 2021年大数据常用语言Scala(二十三):函数式编程 扁平化映射 flatMap

    目录 扁平化映射 | flatMap 定义 案例 扁平化映射  flatMap 扁平化映射也是将来用得非常多的操作,也是必须要掌握的. 定义 可以把flatMap,理解为先map,然后再flatten ...

  8. 我知道的JavaScript--Json对象扁平化

    引子: 在Asp.net mvc 框架下用Ajax方法提交一个复杂的Json 对象到Action方法上, 会出现一些问题,这里我们用Javascript 的方式去解决这个问题,在asp.net mvc ...

  9. web前端数组处理之扁平化数组

    在进行前端开发的时候避免不了会遇到很多数组的情况,其中不乏会存在数组套数组或者需要合并数组的情况.今天小千就来给大家介绍一下如何将数组扁平化处理. 数组扁平化概念:用于将嵌套多层的数组"拉平 ...

  10. es6删除数组某一项_精学手撕系列——数组扁平化

    参考文章:面试官连环追问:数组拍平(扁平化) flat 方法实现 编者荐语: 在前端面试中,手写flat是非常基础的面试题,通常出现在笔试或者第一轮面试中,主要考察面试者基本的手写代码能力和JavaS ...

最新文章

  1. 【Java面试题】39 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?...
  2. 什么是LambdaExpression,如何转换成Func或Action(2)
  3. SpringBoot Web原生组件注入(Servlet、Filter、Listener)
  4. mysql009模糊查询like.是否为null
  5. 让PHP开发者事半功倍的十大技巧
  6. 聊聊.net 程序设计——命名规范(上)
  7. Windows XP快速关机
  8. oracle的解析計劃,Oracle中获取执行计划的几种方法分析
  9. 有趣的检查边界面试题
  10. Spring MVC Interceptor
  11. 【附PDF下载】2021年上半年信息系统项目管理师上午综合知识真题
  12. 编译opencv3.1.0时报错unable to find a javc compiler
  13. 利用LSB算法隐藏图片信息的MATLAB实现
  14. 字符设备驱动应用---LED设备驱动实现
  15. python 计算标准体重程序
  16. python三维图形注释_Python使用注释绘制3D点
  17. MacOS - 快捷键以及各种操作汇总
  18. 【C语言】-- 指针
  19. jupyter notebook如何自动生成目录(extensions)
  20. Vulnhub-bulldog1

热门文章

  1. 语音机器人空号识别介绍
  2. jquery name选择器
  3. Java 使用 throw 抛出异常
  4. 5.MySQL高级语句,你给我学!
  5. 最近再看一遍《X战警》系列
  6. 怎么把视频复制到IPAD
  7. 使用 SharePoint 2007 进行安全性编程(SPUser,SPGroup,SPSiteGroups)
  8. 给大家分享学好 Python 的 11 个优秀资源
  9. 【Flink】(03)Apache Flink 漫谈系列 —— Flink 1.11 Unaligned Checkpoint 解析
  10. 手机中的RAM和ROM分别对应电脑的内存和硬盘