hive:函数:get_json_object和json_tuple 操作json数据(hive加载json数据和解析json)

本文介绍了如何在Hive中处理JSON数据,包括使用get_json_object和json_tuple函数来解析JSON字段。业务情景一是加载JSON文件到Hive表,通过添加JsonSerDe解决报错问题。业务情景二探讨了从JSON字段中提取特定值的方法,get_json_object适用于简单取值,而json_tuple在处理复杂嵌套JSON时受限。
摘要由CSDN通过智能技术生成

业务情景一:

hive加载json数据到表中:

linux本地创建文件people.json

数据为:

{"name":"Michael"}

{"name":"Andy", "age":30}

{"name":"Justin", "age":19}

 

创建表:

CREATE TABLE
    ods.spark_people_json
    (
        `name` string,
        `age` INT
    )
    ROW FORMAT SERDE 'org.apache.hive.hcatalog.data.JsonSerDe'STORED AS TEXTFILE;

 

加载数据到hive表:

注意这里可能会报错:

因为直接使用JsonSerDe类,是会报错的,因为这个类并没有在初始化的时候加载到环境中

报错如下:

FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Cannot validate serde: org.apache.hive.hcatalog.data.JsonSerDe
 

所以我先下载这个包然后add到hive中即可使用:

https://mvnrepository.com/artifact/org.apache.hive.hcatalog/hive-hcatalog-core/0.12.0-cdh5.1.4

包名:hive-hcatalog-core-0.12.0-cdh5.1.4.jar

hive (default)> add jar /var/lib/hadoop-hdfs/spride_sqoop_beijing/bi_table/tang/hive-hcatalog-core-0.12.0-cdh5.1.4.jar;
Added [/var/lib/hadoop-hdfs/spride_sqoop_beijing/bi_table/tang/hive-hcatalog-core-0.12.0-cdh5.1.4.jar] to class path
Added resources: [/var/lib/hadoop-hdfs/spride_sqoop_beijing/bi_table/tang/hive-hcatalog-core-0.12.0-cdh5.1.4.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值