Hive | json数据处理

文章目录

JSON格式的数据如下,JSON格式对引号要求比较高,如果key或者value是字符串类型的,只能使用双引号引起来。

json 复制代码
{"key":"value", "key":"value", "key":"value", "key":"value", ...}

每条数据都以JSON形式存在,每条数据中都包含4个字段,分别为设备名称【device】、设备类型【deviceType】、信号强度【signal】和信号发送时间【time】,现在需要将这四个字段解析出来,在Hive表中以每一列的形式存储,最终得到以下Hive表:

1.JSON函数:get_json_object

get_json_object函数用于解析json字符串,可以从json字符串中返回指定的某个对象列的值,每次只能返回json对象中一列的值。

powershell 复制代码
# 语法:
get_json_object(json_txt, path)

# 第一个参数json_txt:指定要解析的JSON字符串
# 第二个参数path:指定要返回的字段,通过$.columnName的方式来指定path
sql 复制代码
--创建表
create table tb_json_test1 (
  json string
);
--加载数据
load data local inpath '/export/data/device.json' into table tb_json_test1;

select * from tb_json_test1;
sql 复制代码
# 获取设备名称字段
select
       json,
       get_json_object(json,"$.device") as device
from tb_json_test1;
sql 复制代码
# 获取设备名称及信号强度字段
select
       --获取设备名称
       get_json_object(json,"$.device") as device,
       --获取设备信号强度
       get_json_object(json,"$.signal") as signal
from tb_json_test1;
sql 复制代码
select
       --获取设备名称
       get_json_object(json,"$.device") as device,
       --获取设备类型
       get_json_object(json,"$.deviceType") as deviceType,
       --获取设备信号强度
       get_json_object(json,"$.signal") as signal,
       --获取时间
       get_json_object(json,"$.time") as stime
from tb_json_test1;

2.JSON函数:json_tuple

json_tuple函数用于实现JSON字符串的解析,可以通过指定多个参数来解析JSON返回多列的值。功能类似于get_json_object,但是可以调用一次返回多列的值,属于UDTF类型函数,返回的每一列都是字符串类型,还可以搭配lateral view一起使用。

powershell 复制代码
# 语法:
json_tuple(jsonStr, p1, p2, ..., pn) 

第一个参数:指定要解析的JSON字符串
第二个参数:指定要返回的第1个字段
...
第N+1个参数:指定要返回的第N个字段
sql 复制代码
# 获取设备名称及信号强度字段
select
       --返回设备名称及信号强度
       json_tuple(json,"device","signal") as (device,signal)
from tb_json_test1;
sql 复制代码
select
       --解析所有字段
       json_tuple(json,"device","deviceType","signal","time") as (device,deviceType,signal,stime)
from tb_json_test1;
相关推荐
bloglin9999912 小时前
掌握解析JSON输出的技巧:使用LLM生成结构化数据
json
橘子编程15 小时前
Hive大数据实战指南:从入门到精通
大数据·hive·hadoop
仗剑_走天涯17 小时前
hadoop 执行mr任务出现找不到主类或无法加载主类解决方案
hadoop·mr
橘子编程20 小时前
Apache Hadoop知识全解析
大数据·hive·hadoop·apache
dovens20 小时前
Spring Boot 从 2.7.x 升级到 3.3注意事项
数据库·hive·spring boot
顧棟1 天前
HDFS2.X升级3.X案例与相关Issue
大数据·hadoop·hdfs
小跘an吻纸2 天前
linux系统搭建hadoop环境
linux·运维·hadoop
电商API&Tina2 天前
【京东item_getAPI 】高稳定:API 、非爬虫、不封号、不掉线、大促稳跑
大数据·网络·人工智能·爬虫·python·sql·json
LittroInno2 天前
T-JSON跨平台网络通信协议——边缘认知设备的二次开发实战指南
人工智能·计算机视觉·目标跟踪·json
源码之家2 天前
计算机毕业设计:Python汽车销量智能分析与预测系统 Flask框架 scikit-learn 可视化 requests爬虫 AI 大模型(建议收藏)✅
人工智能·hadoop·python·算法·数据分析·flask·课程设计