美文网首页
Hive处理json数据

Hive处理json数据

作者: 扎西的德勒 | 来源:发表于2021-04-20 18:42 被阅读0次

一、测试数据

该数据采用json格式存储:
id:代表当前用户微博的id;
ids:代表当前微博用户关注其他微博用户的id列表;
total_number:关注微博用户的总量。

{"id": 1701439105,"ids": [2154137571,3889177061,1496915057,1663973284],"total_number": 493}
{"id": 1701439106,"ids": [2154137572,3889177063,1496915058,1663973285],"total_number": 494}

二、数据存储及解析

方式一:
将源系统json数据以字符串的数据类型写入Hive表中,然后通过函数解析获取json数据。

数据建表及写入
hive (myhive)> create table myhive.tbs_json_test(
    json_data string
)
stored as textfile;
hive (myhive)> load data local inpath '/install/hivedatas/json_data.json' into table myhive.tbs_json_test;
数据解析
hive (myhive)> select get_json_object(json_data,'$.ids') from myhive.tbs_json_test;
hive (myhive)> select t2.* from myhive.tbs_json_test t1 lateral view json_tuple(t1.json_data,'id','ids') t2 as c1,c2;

get_json_object:用来解析json字符串的一个字段;
json_tuple:用来解析json字符串的多个字段。

方式二:
将源系统json数据按照key拆成多个Hive数据字段,加载对应的jar包后,导入json数据到Hive数据表对应字段中。

数据建表及写入
hive (myhive)> add jar /install/apache-hive-3.1.2/hcatalog/share/hcatalog/ hive-hcatalog-core-3.1.2.jar;

hive (myhive)>create table myhive.tbs_json_test2(
id string,
ids array<string>,
total_number int)
row format serde 'org.apache.hive.hcatalog.data.JsonSerDe'
stored as textfile;
hive (myhive)> load data local inpath '/install/hivedatas/json_data.json' into table myhive.tbs_json_test2;

直接select 字段名称即可查看数据表。
注意:
1、如果json数据不符合规范查询则会报错。增加如下配置会挑过错误数据,错误数据将变为NULL.

alter table myhive.tbs_json_test2 set serdeproperties( "ignore.malformed.json" = "true");

2、如果json数据中包含Hive关键字,数据写入时有问题,可通过SerDe使用SerDe属性将Hive列映射到新名称的属性下。
例如:如果ids为Hive关键字,则将ids改为ids_alias创建Hive数据表。

hive (myhive)>create table myhive.tbs_json_test3(
id string,
ids_alias array<string>,
total_number int)
row format serde 'org.apache.hive.hcatalog.data.JsonSerDe'
with serdeproperties("mapping.ids_alias"="ids")
stored as textfile;

相关文章

  • Hive处理json数据

    一、测试数据 该数据采用json格式存储:id:代表当前用户微博的id;ids:代表当前微博用户关注其他微博用户的...

  • Hive处理Json数据

    Json 格式的数据处理 Json 数据格式是我们比较常用的的一种数据格式,例如埋点数据、业务端的数据、前后端调用...

  • Hive解析json数组

    在使用Hive搭建数据仓库,处理数据时,同传统数仓的结构化数据不同,我们经常会遇到一些非结构化的数据,json格式...

  • hive处理json数据-get_json_object(),k

    数据分析小伙伴应该经常会遇到各种奇葩的源数据,尤其是业务复杂的公司,底层表的备注信息里会有大量的业务信息(大多是j...

  • SparkSQL操作外部数据源

    parquet数据 hive表数据 mysql表数据 hive与mysql结合 1.处理parquet数据 启动s...

  • 数据仓库工具Hive

    数据仓库工具Hive Hive产生背景 直接使用MapReduce处理大数据,问题: MapReduce开放难度大...

  • Spark 数据倾斜调优

    1.使用Hive ETL预处理数据 方案适用场景:如果导致数据倾斜的是Hive表。如果该Hive表中的数据本身很不...

  • swift JSON转model 使用Codable

    简单数据处理 定义模型名称 json数据定义 数据解析 复杂数据处理 定义json 定义模型 解析数据处理 列表数...

  • 2020-04-13

    大数据之Hive 一.Hive基本概念 1.什么是Hive Hive是Facebook开源用于处理 海量 结构化 ...

  • Hive解析Json数据

    HIVE直接读入json的函数有两个: (1)get_json_object(string json_string...

网友评论

      本文标题:Hive处理json数据

      本文链接:https://www.haomeiwen.com/subject/ijinlltx.html