在hive中会有很多数据是用json格式来存储的,而我们用数据的时候又必须要将json格式的数据解析成为正常的数据,今天我们就来聊聊hive中是如何解析json数据的。

下面这张表就是json格式的表,我们以这张表为例来解析json

select * from ff_sa.sa06_ff_b1_session_olg where etl_tx_dt = 20190617  

查询结果:

取字段:(重点来了!!!

1.取单个json字段:

get_json_object(STRING json_string, STRING path)

select get_json_object(key,'$.uuid') from ff_sa.sa06_ff_b1_session_olg where etl_tx_dt =20190617

结果:

注意:如果字段名称错误,不会报错,但结果会是null

select get_json_object(key,'$.uuid1') from ff_sa.sa06_ff_b1_session_olg where etl_tx_dt =20190617  

2.同时取多个字段

select get_json_object(key,'$.uuid'),get_json_object(key,'$.appName') from ff_sa.sa06_ff_b1_session_olg where etl_tx_dt =20190617  

结果:

是不是觉得这种取多个字段的方法比较low,来看取多个字段的另一种方法:

json_tuple(STRING jsonStr, STRING k1, STRING k2)

select json_tuple(key,'uuid','appName') from ff_sa.sa06_ff_b1_session_olg where etl_tx_dt =20190617  

结果:

注意:这里已经没有$.了,再来看下如果不去掉的结果:

select json_tuple(key,'$.uuid','$.appName') from ff_sa.sa06_ff_b1_session_olg where etl_tx_dt =20190617

结果:

hive sql 解析json的更多相关文章

  1. hive中解析json数组

    -- hive中解析json数组 select t1.status ,substr(ss.col,,) as col ,t3.evcId ,t3.evcLicense ,t3.evcAddress , ...

  2. 如何在 Apache Hive 中解析 Json 数组

    我们都知道,Hive 内部提供了大量的内置函数用于处理各种类型的需求,参见官方文档:Hive Operators and User-Defined Functions (UDFs).我们从这些内置的 ...

  3. 再次提供一个纯粹通过pl/sql解析json的方法。

    在github上面有一个叫pljson的项目,该项目就是用pl/sql 来解析json的. 项目地址:pljson(需翻|强),如果翻不了强的同学,我在国内克隆了一个副本,不定期同步更新 pljson ...

  4. 【hive】解析json格式字符串

    (1)解析json中的单个属性  get_json_object(json_str,’$.xxx’/‘$[xxx]’) get_json_object函数第一个参数填写json对象变量(string) ...

  5. 【原创】大数据基础之Hive(2)Hive SQL执行过程之SQL解析过程

    Hive SQL解析过程 SQL->AST(Abstract Syntax Tree)->Task(MapRedTask,FetchTask)->QueryPlan(Task集合)- ...

  6. 【原创】大数据基础之Hive(1)Hive SQL执行过程之代码流程

    hive 2.1 hive执行sql有两种方式: 执行hive命令,又细分为hive -e,hive -f,hive交互式: 执行beeline命令,beeline会连接远程thrift server ...

  7. Hive SQL 编译过程

    转自:http://www.open-open.com/lib/view/open1400644430159.html Hive跟Impala貌似都是公司或者研究所常用的系统,前者更稳定点,实现方式是 ...

  8. [Hive]HiveSQL解析原理

    Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析.Hive的稳定性和 ...

  9. 【转】Hive SQL的编译过程

    Hive是基于Hadoop的一个数据仓库系统,在各大公司都有广泛的应用.美团数据仓库也是基于Hive搭建,每天执行近万次的Hive ETL计算流程,负责每天数百GB的数据存储和分析.Hive的稳定性和 ...

随机推荐

  1. Java实现 LeetCode 212 单词搜索 II

    public class Find2 { public int[] dx={1,-1,0,0}; public int[] dy={0,0,1,-1}; class Trie{ Trie[] trie ...

  2. java实现子集和问题

    1 问题描述 求n个正整数构成的一个给定集合A = {a1,a2,a3,-,an}的子集,子集的和要等于一个给定的正整数d.请输出所有符合条件的子集. 2 解决方案 2.1 全排列思想求解 方法1:首 ...

  3. Java实现第九届蓝桥杯等腰三角形

    等腰三角形 题目描述 本题目要求你在控制台输出一个由数字组成的等腰三角形. 具体的步骤是: 1. 先用1,2,3,...的自然数拼一个足够长的串 2. 用这个串填充三角形的三条边.从上方顶点开始,逆时 ...

  4. java实现第七届蓝桥杯阶乘位数

    阶乘位数 阶乘位数 9的阶乘等于:362880 它的二进制表示为:1011000100110000000 这个数字共有19位. 请你计算,9999 的阶乘的二进制表示一共有多少位? 注意:需要提交的是 ...

  5. Java与Swift对比

    本文链接:http://blog.csdn.net/msyqmsyq/article/details/53538159 从Java到Swift还是比较简单的,相比Object-C,Swift和Java ...

  6. vue axios封装

    前言: 对第三方库进行二次封装和抽离到统一模块,项目面对自己的模块进行开发.如果有一天更换库,只需要修改自己模块中的代码,无需对整个项目进行重构. 将axios网络请求库封装到network文件下的r ...

  7. UI 小白设计常用的Website

    网址 设计师导航网址(其实这个用好了,enough) 设计导航1 设计导航2 icon 阿里巴巴Iconfont flaticons icomoon Noun Project 图片(有时候就是灵魂) ...

  8. 攻防世界misc新手区前三题

    1.this_is_flag 从题目以及题目的描述来看,不难发现实际上题目中所描述的就是flag 2.Pdf 拿到题目附件是pdf文件,观察题目描述,题目说图下面什么都没有,那么十有八九图下面肯定是f ...

  9. 如何控制excel单元格录入相同内容的次数?

    我们知道如果要用Excel制作让人规范填写的模板,数据有效性,Excel2013版本及以上叫数据验证是必学的技能,正好这个案例可以讲讲数据有效性的一种“高级”设置方法. 加入我们需要实现下面的要求,价 ...

  10. delete语句的基本用法

    DELETE FROM tb_courses WHERE course_id=;