2016 - 2024

感恩一路有你

hive解析json嵌套数组 如何在Hive中使用Json格式数据?

浏览量:2191 时间:2021-03-12 05:18:54 作者:admin

如何在Hive中使用Json格式数据?

方法: 1、将json以字符串的方式整个入Hive表,然后使用LATERAL VIEW json_tuple的方法,获取所需要的列名。 2、将json拆成各个字段,入Hive表。这将需要使用第三方的SerDe,例如:

https://code.google.com/p/hive-json-serde/

本文将主要使用第二种方法。wget

https://hive-json-serde.googlecode.com/files/hive-json-serde-0.2.jar

# 添加jar包hive> add jar /home/heyuan.lhy/develop/wanke_http_test/hive-json-serde-0.2.jarhive> # 创建hive表CREATE TABLE test_json( id BIGINT, text STRING,)ROW FORMAT SERDE "org.apache.hadoop.hive.contrib.serde2.JsonSerde"STORED AS TEXTFILELOAD DATA LOCAL INPATH "test.json" OVERWRITE INTO TABLE test_json之后,就可以使用 SELECT等语句进行操作了。 备注:这个SerDe虽然比较老,但经过测试,支持到0.12的版本无压力。

如何优化很长的JSON数据?

现在主流的网络请求中都采用JSON作为其数据交互格式,这主要是因为JSON有以下优势:

  1. 数据格式简单,易于读写,格式都是压缩的,占用带宽小;

  2. 易于解析,客户端JS很容易JSON数据进行解析和编辑;

  3. 支持大多数后端语言,大大简化了服务端和前端交互时的代码开发量,且易于维护;

但如果在开发过程中,把很长很大的JSON数据在前后端传输,那就说明设计工作没做好,应该尽量避免这种数据传输,但也可以从下面几个方面进行下优化:

  • 优化json数据的key-value的长度,尽量简洁易懂即可;

  • 异步分批加载,建设大数据量造成前端页面卡死;

  • 前端增加销毁机制,可以一边加载,一边销毁;

  • 使用解析和压缩性能高的JSON解析工具;

在 Skylake 处理器上,各种解析器解析同一个大数据量的JSON文件的速度(以 GB/s 为单位)如下所示:

hive解析json嵌套数组 hive解析json字符串 hive读取json

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。