Hive的复杂数据类型操作

本文详细介绍了Hive中的三种复杂数据类型:Array、Map和Struct。通过具体实例展示了每种类型的创建方法、数据导入过程及如何进行查询操作。对于初学者来说,这是一份非常实用的指南。

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

Hive数据类型这里介绍 Array,Map,Struct。个人理解看来联系Java当中的相对应的数据类型学习会更容易理解。

一,Array(存放的数据类型)
①准备好一些数据,第一步建表和导入数据,注意这里建表和普通的建表稍微有些许的不同

create table hive_array(name string,city_info array<string>)
row format delimited fields terminated by '\t'
COLLECTION ITEMS TERMINATED BY ',';


load data local inpath '/home/hadoop/kzw/hive_array.txt' overwrite into table hive_array;

②接下来只需要会查询和转换即可,字段名[index]

select name ,city_info[index] from hive_array;//index start 0

index为0的效果图
求字段中包含的值

select * from hive_array where array_contains(city_info,'beijing');

在这里插入图片描述
二,map类型(key类型相同)
准备的数据类型
在这里插入图片描述
建表和导入数据(注意建表语句)

create table hive_map(id int,name string,member map<string,string>,age int)
row format delimited fields terminated by ','
collection items terminated by '#'
MAP KEYS TERMINATED BY ':';

load data local inpath '/home/hadoop/kzw/hive_map.txt' overwrite into table hive_map;

查询,字段名[‘key’]

select id ,name ,member['father'] from hive_map;

select map_keys/[map_values](member) from hive_map;//查询key/values的集合,结果是一个数组

在这里插入图片描述
三,结构体

create table hive_struct(ip string, userinfo struct<name:string, age:int>)
row format delimited fields terminated by '#'
COLLECTION ITEMS TERMINATED BY ':';

userinfo.xxx//userinfo.name,userinfo.age
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

冬瓜螺旋雪碧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值