hive处理json数据_HIVE 处理json结构数据

测试

-- 建表

drop table if exists jsontest;

CREATE TABLE IF NOT EXISTS jsonTest

(teacher_name varchar(10),

major varchar(10),

students_info string comment "学生信息"

)

comment "学生课程信息"

row format serde 'org.apache.hive.hcatalog.data.JsonSerDe'

LOCATION

'hdfs://nameservice1/user/hive/warehouse/bigdata.db/jsontest';

insert into jsontest values

('t1','语文','{"grade":1,"info":{"name":"xinzi","age":14,"sex":"M"}}|{"grade":3,"info":{"name":"lisi","age":14,"sex":"M"}}'),

('t2','maths','{"grade":2,"info":{"name":"zhangs","age":14,"sex":"F"}}')

;

-- 查看已有数据

select row_number() over() , a.* from jsontest a;

-- 创建视图

drop view if exists v_jsontest;

create view if not exists v_jsontest

as

select teacher_name,major,a.grade,b.name,b.age,b.gender from jsontest lateral view explode(split(students_info,'\\|')) stabcdefghi as stin

lateral view json_tuple(stin,'grade','info') a as grade,info

lateral view json_tuple(a.info,'name','age','sex') b as name,age,gender;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值