在Hive中读取Json格式数据

本文介绍了两种在Hive中解析JSON格式数据的方法:一是通过LATERAL VIEW将JSON字符串转换为模型;二是利用第三方SerDe将JSON字段拆分并存储在Hive表中。文章还提供了具体的实现步骤和示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果有时候遇到数据源是json的格式(比如直接读取mongoDB的数据), hive解析就要麻烦一点, 主要有以下2种方法:

1、将json以字符串的方式整个入Hive表,然后使用LATERAL VIEW json_tuple的方法(相当于生成json串的模型),获取所需要的列名。 这种方法还是比较麻烦,尤其是字段多的时候, 第二种方法用起来更方便.

2、使用第三方的SerDe将json拆成各个字段入Hive表里, 我使用的是hive1.2.1可以正常使用, 下载地址:http://download.youkuaiyun.com/download/ls386239766/8662797

# 添加jar包
hive> add jar /usr/local/hive/lib/json-serde-1.3-jar-with-dependencies.jar;
hive> 

# 创建hive表
CREATE TABLE test_json
(
    id BIGINT,
    text STRING,
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.JsonSerde'
STORED AS TEXTFILE
;

LOAD DATA LOCAL INPATH "test.json" OVERWRITE INTO TABLE test_json;

如果觉得每次运行都要加载这个jar包比较麻烦, 可以把jar包路径添加到hive-env.sh里.

160258_zpUK_1583436.png

转载于:https://my.oschina.net/aibati2008/blog/698535

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值