【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:当数据具有固定的字段结构(如对象、嵌套对象),且需要通过字段名明确访问时使用。

相关推荐
WhoAmI8 天前
MapReduce框架原理解析一:InputFormat
大数据·hadoop
WhoAmI8 天前
MapReduce框架原理解析三:OutputFormat
大数据·hadoop
WhoAmI8 天前
MapReduce框架原理解析二:Shuffle
大数据·hadoop
王小王-12313 天前
基于 Hive 的网易云音乐数据分析及可视化系统
hive·hadoop·数据分析·音乐数据分析·网易云音乐分析·hive音乐分析·hadoop网易云
极光代码工作室13 天前
基于数据仓库的电商数据分析平台
大数据·hadoop·python·spark·数据可视化
Database_Cool_14 天前
大规模数据分析降本指南:AnalyticDB Serverless 弹性架构实战
数据仓库·阿里云·架构·数据分析·serverless
Database_Cool_14 天前
什么是湖仓一体?和数据仓库的本质区别(附 AnalyticDB MySQL 湖仓一体方案)
数据库·数据仓库·mysql
Chris _data14 天前
WPF 学习第三天 — Modbus RTU 串口通信
hadoop·学习·wpf
知识分享小能手14 天前
Hadoop学习教程,从入门到精通,Flume日志采集系统 — 完整知识点与案例代码(9)
hadoop·学习·flume
递归尽头是星辰14 天前
AI 访问数据仓库:从直连到微服务化
数据仓库·人工智能·微服务·dataagent·ai数据治理