zoukankan      html  css  js  c++  java
  • Hive json字符串解析

    在做数据测试时,会遇到数据库表里字段类型为json 的情况,而我们可能只关注该字段中的各别内容的信息,如下

    content
    {"测试内容1":14,"测试内容2":1,"测试内容3":2}

    比如我们只需要 

    测试内容2、测试内容3 对应的 value 值。

    方式一:get_json_object()
    select get_json_object(content,'$.测试内容2') as Testcontent from testTableName;
    
    -- 执行结果为 1
    select
    get_json_object(content,'$.测试内容2') as Testcontent2,
    get_json_object(content,'$.测试内容3') as Testcontent3
    from testTableName;
    -- 执行结果为 1、2

    get_json_object函数第一个参数填写json对象变量,第二个参数使用$表示json变量标识,然后用 . 或 [] 读取对象或数组;

     

    方式二:json_tuple()

    当使用json_tuple对象时,可以显著提高效率,一次获取多个对象并且可以被组合使用,写法如下:

    其中,需要使用lateral view 视图方法来写,不需要加$标示符读取对象

    select a.timestamp,
     b.* 
    from log a 
    lateral view json_tuple(a.appevent, 'eventid', 'eventname') b as f1, f2;
    
    -- 其中 b.* 代表的就是 f1,f2,也就是 appevent.eventid 、appevent.eventname

    get_json_object与json_tuple在解析埋点数据时会经常用到,而且比较有效且很简单

  • 相关阅读:
    领料单取整
    财务应付金额对不上的
    销售订单计算交期
    辅助单位启用
    K3CLOUD日志目录
    QLIKVIEW-日期格式,数字格式写法
    MRP运算报错-清除预留
    整单折扣后 财务、暂估应付价税合计对不上的问题处理
    BZOJ 2976: [Poi2002]出圈游戏 Excrt+set
    BZOJ 3060: [Poi2012]Tour de Byteotia 并查集
  • 原文地址:https://www.cnblogs.com/BlueSkyyj/p/9720346.html
Copyright © 2011-2022 走看看