HIVE处理JSON数据:GET_JSON_OBJECT、JSON_TUPLE、JSONFILE

【Hive---15】json相关函数 『 get_json_object() | json_tuple() | JsonSerde』 1. 概述 2. get_json_object() (不推荐使用) 2.1 概述 2.2 例子 2.3 一个注意事项 3. json_tuple() (推荐使用) 3.1 概述 3.2 例子 3.3 一个注意点 4. 使用内置解析器JsonSerde 阅读详情

概述

  • JSON(JavaScript Object Notation, JS 对象简谱)
    是一种轻量级的数据交换格式
    采用完全独立于编程语言的文本格式来存储和表示数据
  • 样例
{
    "is_del": true,
    "id": {
        "id": "a1"
    },
    "p": [{
        "hp": 9,
        "mp": 7
    }, {
        "hp": 8,
        "mp": 8
    }]
}

解析JSON的函数

  • HIVE版本:3.1.2
CREATE OR REPLACE VIEW v AS
SELECT '{"is_del":true,"id":{"id":"Z"},"p":[{"hp":9,"mp":7},{"hp":8,"mp":8}]}' AS js;

GET_JSON_OBJECT

  • 返回值类型是字符串
  • 可深层解析
SELECT
  GET_JSON_OBJECT(js,'$.is_del'),
  GET_JSON_OBJECT(js,'$.id.id'),
  GET_JSON_OBJECT(js,'$.p[0].hp'),
  GET_JSON_OBJECT(js,'$.p[0].mp'),
  GET_JSON_OBJECT(js,'$.p[1].hp'),
  GET_JSON_OBJECT(js,'$.p[1].mp')
FROM v;

结果

JSON_TUPLE函数

  • 只进行一次解析,比多次调用GET_JSON_OBJECT的效率高
  • 是UDTF,可以和LATERAL VIEW结合使用
  • 返回值类型是字符串
  • 列名默认值:c0、c1、c2……
  • 貌似只能解析1层
SELECT JSON_TUPLE(v.js,'is_del','id','p') FROM v;

结果

SELECT t.* FROM v
LATERAL VIEW JSON_TUPLE(v.js,'is_del','id','p')t AS a,b,c;

结果

JSON表

什么是JSON表

  • JSON表是HIVE中的一种存储格式
    是JSON文件格式存储的

  • 4.0.0版本建表语法

STORED AS JSONFILE
  • 3.1.2版本建表语法
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe'
STORED AS TEXTFILE

示例

  • 数据样貌
{"is_del":true,"id":{"id":"a1"},"p":[{"hp":9,"mp":7},{"hp":8,"mp":8}]}
{"is_del":false,"id":{"i":"a2"},"p":[{"hp":5,"mp":4},{"hp":3,"mp":3}]}
  • 创建数据文件
echo '{"is_del":true,"id":{"id":"a1"},"p":[{"hp":9,"mp":7},{"hp":8,"mp":8}]}' >/tmp/a
echo '{"is_del":false,"id":{"i":"a2"},"p":[{"hp":5,"mp":4},{"hp":3,"mp":3}]}' >>/tmp/a
cat /tmp/a
  • 创建JSON表,导入数据,查询数据
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1`(
  `is_del` STRING,
  `id`     MAP<STRING,STRING>,
  `p`      ARRAY<STRUCT<mp:INT,hp:INT>>)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.JsonSerDe';
LOAD DATA LOCAL INPATH '/tmp/a' OVERWRITE INTO TABLE t1;
SELECT * FROM t1;

Hive字符串、Json解析 json字符串解析 阅读详情

相关推荐

【Hive必学篇】效率优化,告别低效解析!json_tuple()与LATERAL VIEW联合实战全解析

在Hive中处理JSON数据时,get_json_object()函数虽然灵活,但存在‌重复解析性能差‌、‌多字段提取繁琐‌的问题。例如,提取10个字段需调用10次函数,导致计算资源浪费。json_tuple()‌:单次解析即可提取多个字段,减少JSON重复解析开销。LATERAL VIEW‌:将JSON数组“扁平化”为多行数据,便于分析嵌套集合。方法适用场景性能表现单字段提取、简单路径低(多次调用)多字段提取、嵌套路径高(单次解析)数组展开、集合分析中等。

优快云博客专家,领域包括但不限于:AI、大数据、Python、架构师,有合作、课程、问题、疑惑请私信博主 1681

Hive解析json字段,虽然json_tuple写法很优雅,但是效率并不一定高哦

在写Hive SQL时,需要从一个json列中解析出多个key的信息,查阅资料了解到有两种写法,一种是get_json_object,另外一种是json_tuple。两种用法的示例如下所示 get_json_object示例: select get_json_object(json_str_column,'$.a1') as a1, get_json_object(json_str_column,'$.a2') as a2, get_json_object(json_str_colum...

淡定一生2333的博客 1万+

Hive SQL 精进系列: JSON_TUPLE 快速提取多键值

Hive 作为大数据处理的常用工具,提供了诸多处理 JSON 数据的函数,`json_tuple`、`get_json_object` 和 `from_json` 便是其中重要的几个。`json_tuple` 能够高效地从 JSON 字符串中提取指定的键对应的值。本文将详细介绍 `json_tuple` 函数的语法、应用场景,同时与 `get_json_object`、`from_json` 进行对比,并阐述使用时的注意事项。

进一步有进一步的欢喜~ 1799

HIVE常用函数的用法之JSON解析下

如果JSON为空或者为非法的JSON格式,返回NULL。 如果键Key为空或者不合法(JSON中不存在)返回NULL。 如果JSON合法,键Key也存在,则返回对应字符串。 支持包含中文的JSON数据解析。 支持多层嵌套的JSON数据解析。 支持包含多重嵌套的数组的JSON数据解析。 在需要对同一个JSON字符串多次解析的情况下,相比于多次调用GET_JSON_OBJECT,JSON_TUPLE可以一次输入多个Key,且JSON字符串只被解析一次,效率更高。 JSON_TUPLE是UDTF,在需要选取其他列

qq_45394890的博客 2160

Hive中json 字符串解析之 get_json_object 与 json_tuple

hive 中 json 字符串解析

数据与算法架构提升之路专栏 9094

激光条纹中心提取——Steger

激光条纹中心提取-Steger 好久没有记录了,记录一下今天学习的内容,据说Steger在激光条纹中心提取上神一般的存在。文章和代码都分享给大家了哈,其中有四个文件,3个C++,一个python,python一个抠图文件,3个c++包含背景图+原图, 单张图提取, 多张图提取。 分享代码 #include <opencv2\core.hpp> #include <opencv2\highgui.hpp> #include <opencv2\imgproc.hpp> #i

CharmsLUO的博客 5383

json_tuple函数 的利用

首先在Hive 中查看json_tuple 函数的详细信息 desc function extended json_tuple; 出现解释: json_tuple(jsonStr, p1, p2, …, pn) - like get_json_object, but it takes multiple names and return a tuple. All the input parameters and output column types are string. | jsonStr

weixin_52116589的博客 6298

Nginx RTMP流媒体服务器搭建与优化指南

RTMP(Real-Time Messaging Protocol)是一种广泛应用于直播领域的流媒体传输协议,其核心原理是通过TCP协议实现低延迟的音视频数据传输。在技术实现上,RTMP协议通过分块传输(chunk)和消息分帧机制,平衡了传输效率与实时性的需求。结合Nginx的高性能事件驱动架构,开发者可以构建支持高并发的流媒体服务器。这种技术组合在直播推流、监控系统对接等场景具有显著优势,既能实现完全自主的数据管控,又能避免第三方服务费用。通过合理配置worker_processes线程池和调整TCP内核

weixin_42549496的博客 312

Hive之解析Json数组

目录Hive自带的json解析函数1、get_json_object函数2、json_tuple函数Hive解析json数组一、嵌套子查询解析json数组二、使用 lateral view 解析json数组 Hive自带的json解析函数 1、get_json_object函数 语法:get_json_object(json_string, ‘$.key’) 说明:解析json的字符串json_string,返回path指定的内容。如果输入的json字符串无效,那么返回NULL。这个函数每次只能返回一个数据

weixin_43597208的博客 9541

如何读懂CiteSpace图谱?科研小白必看的节点颜色/年轮/聚类解读手册

本文详细解析CiteSpace图谱的核心视觉元素,包括节点颜色、年轮和聚类标识,帮助科研人员准确解读数据分析结果。通过生物医学案例展示如何从图谱中识别关键文献和研究趋势,提供五步系统解读法和常见错误规避策略,助力科研小白快速掌握文献计量分析技巧。

weixin_29179311的博客 318

SerDes硬件设计原理介绍

接收端:外部差分串行数据------线性均衡器----(CDR从数据中恢复出采样时钟)-----解串器(串行信号转并行信号)-------8B/10B的解码器或解扰器-----FIFO-----FPGA接受差分并行数据。发送端: FPGA发送差分并行数据----FIFO------8B/10B编码器或者扰码器-----串行器(并行信号转串行信号)-----均衡器(滤波)--------TX串行信号差分外发。串行器:8bit的并行数据----2bit的并行数据----1bits的串行数据。

weixin_42304393的博客 1110

HiveSQL:提取json串内容(含key为中文情况)——get_json_oject和json_tuple

提取json串中内容,json格式示例如下......get_json_object和json_tuple的一些不同......

qq_40178216的博客 2481

城市规划师必备:ArcMap里用这个免费工具,5步完成建筑群通风廊道分析

本文介绍了城市规划中利用ArcMap进行建筑群通风廊道分析的高效方法,重点讲解了迎风面投影指数(FAI)的应用。通过5个步骤,从数据准备到规划应用,帮助规划师快速评估城市通风潜力,优化建筑布局,提升城市风环境质量。

weixin_26800111的博客 412

hive:函数:json_tuple处理json数据

在处理日志数据时,会遇到json格式的数据。那么,在hive中如何处理它呢? 一般情况下,json数据会以string类型,字符串格式进行存储。 创建案例 create database temp_db; --drop database temp_d; --这次导入的数据中使用空格来分割 create table temp_db.json_test (id int comment ...

不花的花和尚的博客 1万+

Vatti clipping 算法:从概念到实现的图形裁剪核心

本文深入解析Vatti clipping算法在图形处理中的核心应用,从基础概念到高效实现,涵盖多边形裁剪、合并、差集和交集等布尔运算。通过实战案例和优化技巧,展示该算法在处理自相交多边形、带孔洞图形等复杂场景中的卓越性能,适合CAD、路径规划等工业级应用。

weixin_30621959的博客 692

小龙虾OpenClaw卸载全攻略,彻底清理缓存和配置,干净无残留!

不想要的小龙虾OpenClaw怎么彻底卸载?🦞本文教你如何彻底的卸载OpenClaw⚡️,Windows/macOS/Linux通用,干净无残留🧹

XiaoqiangClub的博客 316

Day2、Hive json_tuple性能比get_json_object更高吗?为什么?

get_json_object与json_tuple的性能基本没有差别,差别在于二者的功能不一样。lateral view适用于一行->多行的场景,lateral view + json_tuple对开发者友好,但是性能损耗较大,除非有嵌套多字段解析和炸裂操作,否则不建议使用。文章分享就到这里,有误的地方欢迎指出,也欢迎大家关注我的公众号咸鱼说数据一起讨论数据开发的相关内容。

StephenYou的自习室 2265

PyTorch深度学习实战(7)——批大小对神经网络训练的影响

在神经网络中,批( batch )是指一次输入网络进行训练或推断的一组样本。批处理( batch processing )是指将这一组样本同时输入网络进行计算的操作。本节中首先介绍批( Batch )的基本概念,并且介绍批大小在神经网络训练过程中的影响。

盼小辉丶的博客 1万+

json_tuple一定比 get_json_object更高效吗?

我们在实际用的时候,不要盲从,用get_json_object也是没关系的,况且正常情况下,一次也不会取成千上万个key值... 重要的是要保证,我们的json字符串一定不要存的太长,太大,这样的话,不管用哪个函数,效率都不会好

xiaoluobutou的专栏 723

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

hive解析json_hive json解析函数,2024年最新从思维图到基础再到深入

点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新**

2401_84164672的博客 1360

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

hive解析json_hive json解析函数(1)

发知识点,真正体系化!**

2401_84182073的博客 1093

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

HIVE函数(json_tuple)与(parse_url_tuple)

1.json_tuple函数 json_tnple函数用来处理json数据 创建一张表用来存储json数据 hive (ruozedata_d7)> create table IF NOT EXISTS rating_json(json string); OK Time taken: 0.023 seconds hive (ruozedata_d7)> load data local...

weixin_43975538的博客 2663

Hive_Hive中的Json数据解析函数 get_json_object & json_tuple

Hive 基础用法

迎难而上 6377

[数据分析][Hive]json_tuple()解析嵌套json

select temp1.f1,temp1.f2,temp1.f3,temp1.f4,temp2.f5,temp2.f6 from table lateral view json_tuple(f0,'f1','f2','f3','f4') temp1 as f1,f2,f3,f4 lateral view json_tuple(f4,'f5','f6') temp2 as f5,f6;

wsjtwmy的博客 2422

hive get_json_object json_tuple json解析详解

json是常见的数据接口形式,实际中使用也很广泛,下面我们看看怎么在hive中解析json格式。hive中常用的解析json格式的函数有两个:先看看get_json_object 从上面可以看出,get_json_object输入的参数是两个,json_txt与path。 其中,json_txt就是我们需要解析的json字符串,而path表示json中的"字段"。再看看json_tuple方法 从上面的解释不难看出,json_tuple与get_json_object的用法很类似,唯一的区别是,json_t

wufabao的博客 1315

hive:函数:get_json_object和json_tuple 操作json数据(hive加载json数据和解析json)

业务情景一: hive加载json数据到表中: linux本地创建文件people.json 数据为: {"name":"Michael"} {"name":"Andy", "age":30} {"name":"Justin", "age":19} 创建表: CREATE TABLE ods.spark_people_json ( `nam...

不花的花和尚的博客 7865
上一篇: YARN公平调度器-原理和入门配置
下一篇: 数仓模型HIVE业务元数据治理:专题构建方案
小基基o_O
博客等级 码龄9年 4414粉丝 467原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小基基o_O

您的鼓励是我创作的巨大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值