【Hive】复杂数据类型

array

类型的定义 array<元素的类型>

创建对象:array(1,4,6,3)

取值

array对象[角标]

复制代码
select array(1,4,5,3)[2]

map

类型的定义: map<k的类型,v的类型>

创建对象:map(k1,v1,k2,v2)

取值

根据key获取value值:map对象['key']

复制代码
select map('name','lisi','age',20)['name']

获取所有的key:map_keys(map对象)

复制代码
select map_keys(map('name','lisi','age',20))

获取所有的value:map_values(map对象)

复制代码
select map_values(map('name','lisi','age',20))

struct

类型的定义:struct<属性名1:属性值的类型,属性名2:属性值的类型,.....>

创建对象

使用默认的属性名:struct(属性值1,属性值2,...)

自定义属性名:named_struct(属性名1,属性值1,属性名2,属性值2,.....)
select named_struct('name','lisi','age',20)

取值:struct对象.属性名

复制代码
select named_struct('name','lisi','age',20).age

select struct('lisi','male').col2

什么时候用map,什么时候用struct?

选 MAP:当数据是 "键值对" 形式,且键具有唯一性(如配置项、标签映射)时使用。

选 STRUCT:当数据具有固定的字段结构(如对象、嵌套对象),且需要通过字段名明确访问时使用。

相关推荐
是阿威啊4 小时前
【第二站】本地hadoop集群配置yarn模式
大数据·linux·hadoop·yarn
好大哥呀9 小时前
Hadoop yarn
大数据·hadoop·分布式
红队it10 小时前
【数据分析】基于Spark链家网租房数据分析可视化大屏(完整系统源码+数据库+开发笔记+详细部署教程+虚拟机分布式启动教程)✅
java·数据库·hadoop·分布式·python·数据分析·spark
本旺1 天前
【数据开发离谱场景记录】Hive + ES 复杂查询场景处理
hive·hadoop·elasticsearch
莫叫石榴姐1 天前
Doris为2.1版本,但json_each不可以用解决方法
数据仓库·json
无泪无花月隐星沉1 天前
uos server 1070e部署Hadoop
大数据·运维·服务器·hadoop·分布式·uos·国产化os
悟能不能悟2 天前
springboot全局异常
大数据·hive·spring boot
是阿威啊2 天前
【第一站】本地虚拟机部署Hadoop分布式集群
大数据·linux·hadoop·分布式
lightningyang2 天前
Hadoop 分布式集群配置(OpenEuler 1主2)
hadoop·openeuler·天枢一体化虚拟仿真靶场平台
是阿威啊2 天前
【第六站】测试本地项目连接虚拟机上的大数据集群
大数据·linux·hive·hadoop·spark·yarn