内置函数:get_json_object(json串,解析路径)

解析路径说明:

$ :跟对象

. :子对象

[] :数组下标

* :所有

举例:

数据样例:

{"movie":"1190","rate":"4.8","timestamp":"978300760","uid":"145325"}

{"movie":"1191","rate":"3.7","timestamp":"978200613","uid":"234566"}

{"movie":"1190","rate":"4.5","timestamp":"977500902","uid":"474532"}

...

将数据导入hive:

create table rating(line string);#建表,只有一列数据 load data local inpath '/user/rating.json' into table rating;#从本地导数据

1)求评分次数排名前3的电影

SELECT get_json_object(t.line, '$.movie') as movieid, count(*) as tatol FROM rating t GROUP BY 1 ORDER BY 2 LIMIT 3;

  • t.line是要解析的json串,
  • $定位到第一级目录{
  • .定位到第二级目录"movie":"1190","rate":"4.8","timestamp":"978300760","uid":"145325"
  • movie:通过key定位到value值1190

2)将整个json文件解析成一张表

1)建一个用于存放数据的表

create table rate(movie int,rate float,time bigint,uid bigint);

2)解析并加载数据

insert into table rate select get_json_object(t.line, '$.movie') as movie, get_json_object(t.line, '$.rate') as rate, get_json_object(t.line, '$.timestamp') as time, get_json_object(t.line, '$.uid') as uid FROM rating t;

3)解析较复杂json

{

"status": 0,

"data": {"search_data":[{

"name": "奈良市",

"location": {

"lat": 34.685087

}]

}

1-解析status

get_json_object(t.line, '$.status');

2-解析name

get_json_object(t.line, '$.data.search_data.[0].name');

3-解析lat

get_json_object(t.line, '$.data.search_data.[0].location.lat');

hive - 解析 json相关推荐

  1. 学会Hive解析Json数组

    在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析.接下来就聊聊Hive中是如何 ...

  2. Hive解析Json数组超全讲解

    在Hive中会有很多数据是用Json格式来存储的,如开发人员对APP上的页面进行埋点时,会将多个字段存放在一个json数组中,因此数据平台调用数据时,要对埋点数据进行解析.接下来就聊聊Hive中是如何 ...

  3. hive解析json

    -- json数据 {"OTHER_INFO":{"MOBILE_ADDR":"四川省内江市潘咱陛路1233号闷羞小区19单元484室",& ...

  4. Hive解析json字段,虽然json_tuple写法很优雅,但是效率并不一定高哦

    在写Hive SQL时,需要从一个json列中解析出多个key的信息,查阅资料发现到有两种写法,一种是get_json_object,另外一种是json_tuple.两种用法的示例如下所示 get_j ...

  5. Hive解析Json格式用户日志

    解析json格式数据 Json数据 HIVE SQL解析 第一种方式 第二种方式 第三种方式 string类型的数组形式的行转列拆分 Json数据 第一次写博客,mark一下 --20191025 下 ...

  6. hive解析json数组

    前言 解析如下数组 获取app_name和 app_type 字段 [{"app_name":"Kloningponsel","app_type&qu ...

  7. hive 解析json字符串

    例如字段 str_a {'SID':'JDC-XSZ-HHS001','SFZH':'914102257258165412'} 这种是标准的一个json. select get_json_object ...

  8. Hive之解析Json数组

    目录 Hive自带的json解析函数 1.get_json_object函数 2.json_tuple函数 Hive解析json数组 一.嵌套子查询解析json数组 二.使用 lateral view ...

  9. hive处理json数据_(转)hive中解析json数组

    hive中解析一般的json是很容易的,get_json_object就可以了. 但如果字段是json数组,比如 [{"bssid":"6C:59:40:21:05:C4 ...

最新文章

  1. eclipse中开发python
  2. 用鸽 计算机教案,科学活动教案:鸽子
  3. Lucene概述第一部分:创建索引
  4. Spring的XML解析原理,java接口流程图
  5. Altium Designer(九):DXF+DWG
  6. 【每日算法Day 66】经典面试题:不用四则运算如何做加法?
  7. SQL Server 2014 虚拟机的自动备份 (Resource Manager)
  8. flv格式怎么转换成mp4
  9. 星星之火-58:CPRI协议缺点,eCPRI协议是如何克服CPRI协议的不足?
  10. 惠普计算机电源怎么设置充电,HP笔记本的三芯电源怎么改二芯实现充电?
  11. 展现量、点击量、点击率;访客数、访问次数、浏览量的区别与作用
  12. 批量压缩图片大小 – Caesium简体中文
  13. shell的正向和反向
  14. Web应用程序系统的多用户权限控制设计及实现-首页模块【5】
  15. intellij idea字体大小设置一秒完成
  16. Docker_Cgroup
  17. sketch如何做设计稿交互_Sketch交互设计入门到精通教程
  18. 在html插入数学公式,给WordPress的文章插入数学公式
  19. Leetcode Golang 77. Combinations.go
  20. 使用nexus私服下载和上传依赖

热门文章

  1. 【bzoj1738】[Usaco2005 mar]Ombrophobic Bovines 发抖的牛 Floyd+二分+网络流最大流
  2. 算法分类整理+模板①:矩阵快速幂
  3. 使用parted划分GPT分区(转)
  4. 事件冒泡控件示例(转载)
  5. 判断一个链表是否为循环单链表
  6. C 实现 删除字符串空白符的函数 strtrim
  7. 数据结构之并查集:并查集的介绍与Python代码实现——18
  8. pandas 读表格_pandas电子表格的读取(pandas中的read_excel)
  9. 怎么让车辆gps定位失效_如何更有效地检测车辆gps定位器?
  10. python socket 大文件_python:socket传输大文件示例