hive map,arrary ,struct 复杂结构小记

本文介绍了Hive中三种复杂数据结构:map、array和struct。map以键值对形式存储数据,可以用size()获取大小,通过explode进行行转列操作。array是有序的数据集合,可使用size()检查长度,利用explode和group by进行特定查找。struct包含多个字段,通过字段名直接访问其值。
摘要由CSDN通过智能技术生成

1、map结构

  • 定义:map<datatype1,datatype2>  类型1和类型2可以一样

map<string,double>  两种数据类型合成

例子:{“data":1232.23,”data2":323.0}

与其他语言一样,是map{key1:value1,key2:value2,...}

  • 访问可以使用列名来访问: select map1['name'] from table ;
  • map_values(map):取map字段全部value : select map_values(map1) from table

如果存在则显示value如果不存在则显示的是null

  • map大小:使用size()
size(categories)

展开使用:

lateral view explode进行行转列:

select name,id
from table_test 
lateral view explode(map_1) table1 as name,id;

 

2.array

定义:array类型是[datatype,datatype,...]

  • 查看大小亦可使用:size()函数

查找某个数据是否存在,可使用lateral view explode进行行转列。如果有唯一索引的话,再使用group by 综合collect_list 合并。

例子:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值