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

相关推荐
计算机毕业编程指导师2 小时前
【Python大数据项目推荐】基于Hadoop+Django脑卒中风险分析系统源码解析 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·脑卒中
计算机毕业编程指导师2 小时前
【大数据毕设推荐】Hadoop+Spark电影票房分析系统,Python+Django全栈实现 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
大数据·hadoop·python·计算机·spark·毕业设计·电影票房
AM越.1 天前
助睿:!!零代码解决!!订单利润分流数据加工o(* ̄▽ ̄*)ブ
数据仓库·笔记·etl·助睿
计算机毕业编程指导师1 天前
【计算机毕设推荐】Python+Spark卵巢癌风险数据可视化系统完整实现 毕业设计 选题推荐 毕设选题 数据分析 机器学习 数据挖掘
hadoop·python·计算机·数据挖掘·spark·毕业设计·卵巢癌
极光代码工作室1 天前
基于大数据的校园消费行为分析系统
大数据·hadoop·python·数据分析·spark
二十六画生的博客2 天前
每个subtask都提交一份快照到hdfs,会把10个小的快照合并成一个大的吗?谁来合并?
大数据·hadoop·hdfs·flink
juniperhan2 天前
Flink 系列第24篇:Flink SQL 集成维度表指南:存储选型、参数调优与实战避坑
大数据·数据仓库·sql·flink
隐于花海,等待花开2 天前
41.ABS / POW / SQRT 函数深度解析
大数据·hive
千月落2 天前
HDFS数据迁移
大数据·hadoop·hdfs
RestCloud3 天前
ETL数据质量保障:如何通过优化提升数据准确性?
数据仓库·etl·数据处理·数据传输·数据同步·数据集成平台