在Hive中读取Json格式数据

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

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

2、使用第三方的SerDe将json拆成各个字段入Hive表里, 我使用的是hive1.2.1可以正常使用, 下载地址:http://download.csdn.net/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

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值