Hive解析json

需要解析的json为:

{

    “_id”:{

     “$oid”:”580db8cf8ead0e093c876a72″

         }

,

    “aClassId”:[“15397303000114”],

    “iBookId”:{

        “$numberLong”:”145″

         }

,

    “iCreateTime”:{

      “$numberLong”:”1477294287″

       }

,

    “iEndTime”:{

       “$numberLong”:”1477324799″

        }

,

    “iQuestId”:{

       “$numberLong”:”17″

     }

,

    “iState”:{

       “$numberLong”:”1″

      }

,

    “iTchId”:{

      “$numberLong”:”39250″

      }

,

    “sQuestInfo”:”{“parentId”:3,”parentName”:”Starter unit 2″,”childName”:”3c”}”

}

解析代码为:

select

c.oid,

regexp_replace(b.aClassId, ‘”‘, ”) as aClassId,   //去掉引号 ” “

c.parentId,

c.parentName,

c.childName,

c.iBookId,

c.iCreateTime,

c.iEndTime,

c.iQuestId,

c.iState,

c.iTchId

from odsdata.speaktrain_0001_teacher_homework a

lateral view json_tuple(a.json,’_id’,’aClassId’,’iBookId’,’iCreateTime’,’iEndTime’,’iQuestId’,’iState’,’iTchId’,’sQuestInfo’) b as id,aClassId,iBookId,iCreateTime,iEndTime,iQuestId,iState,iTchId,sQuestInfo

lateral view json_tuple(b.id,’$oid’) c as oid

lateral view json_tuple(b.iBookId,’$numberLong’) c as iBookId

lateral view json_tuple(b.iCreateTime,’$numberLong’) c as iCreateTime

lateral view json_tuple(b.iEndTime,’$numberLong’) c as iEndTime

lateral view json_tuple(b.iQuestId,’$numberLong’) c as iQuestId

lateral view json_tuple(b.iState,’$numberLong’) c as iState

lateral view json_tuple(b.iTchId,’$numberLong’) c as iTchId

lateral view json_tuple(b.sQuestInfo,’parentId’,’parentName’,’childName’) c as parentId,parentName,childName limit 2;

    原文作者:hello琳123
    原文地址: https://www.jianshu.com/p/8d098d5ecc41
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞