Hive集合数据类型和类型转化

本文介绍了Hive中的集合数据类型,包括STRUCT、MAP和ARRAY,详细讲解了如何访问和操作这些类型的数据。此外,还探讨了Hive中的自动类型转化规则,特别是字符串到其他类型的转化限制以及特殊的小数处理情况。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合数据类型

STRUCT 和c语言中的struct类似,都可以通过“点”符号访问元素内容。例如,如果某个列的数据类型是STRUCT{first STRING, last STRING},那么第1个元素可以通过字段.first来引用。2 struct()
例如
struct<street:string, city:string>
MAP MAP是一组键-值对元组集合,使用数组表示法可以访问数据。例如,如果某个列的数据类型是MAP,其中键->值对是’first’->’John’和’last’->’Doe’,那么可以通过字段名[‘last’]获取最后一个元素 map()
例如map<string, int>
ARRAY 数组是一组具有相同类型和名称的变量的集合。这些变量称为数组的元素,每个数组元素都有一个编号,编号从零开始。例如,数组值为[‘John’, ‘Doe’],那么第2个元素可以通过数组名[1]进行引用。
Array()例如

array<string>

举例
在这里插入图片描述
然后将数据用上一章节写的内容 上传上去,此时可以看到select * from test为:
在这里插入图片描述
我们使用select可以筛选map的不同key对应的value值,也可以直接筛选map属性
在这里插入图片描述
在这里插入图片描述
并且hive中拿不到的值会补上null;如果是筛选不是这个属性的值会返回false。

自动类型转化

在这里插入图片描述
注:string只能转化在它能转化的时候,比如string本身就是数字

在这里插入图片描述
但如果string不是数字,它就转化不了double
在这里插入图片描述
注2:在hive中如果小数点后都为0,则会自动抹掉这个0,并且不会类型转化但是如果小数点后有值,就会类型转化
在这里插入图片描述

强制类型转化

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值