hive中的复合数据类型

本文介绍了Hive中三种复合数据类型:Array、Map和Struct。Array用于存储相同类型的元素,例如['a', 'b', 'c'];Map通过键值对形式存储数据,如{'唱歌': '非常喜欢', '跳舞': '喜欢'};Struct则允许集合元素有不同的类型,例如struct<name:STRING, age:INT>。通过下标、键名和字段名,可以方便地访问这些复合数据类型的元素。" 9570669,1351588,移动端全景影像类库PanoramaGL详解,"['OpenGL', 'Android开发', '全景', '类库']

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

  • Array

array中的数据为相同类型,例如,假如array A中元素[‘a’,‘b’,‘c’],则A[1]的值为’b’
数据结构如下:
zhangsan beijing,shanghai,tianjin,hangzhou
wangwu shanghai,chengdu,wuhan,haerbin
create table complex_array(name string,work_locations array< string > ) row format delimited fields terminated by ‘\t’ collection items terminated by ‘,’; load data local inpath ‘/export/data/hivedata/complex_array.txt’ into table complex_array; 查看array的元素 用下标进行寻找,类似于其他编程语言中的数组访问 select work_locations[1] from complex_array;

  • Map

可以通过[“指定key名称”]访问

1,zhangsan,唱歌:非常喜欢‐跳舞:喜欢‐游泳:一般般
2,lisi,打游戏:非常喜欢‐篮球:不喜欢

create table complex_map(id int,name string,hobby map< string,string >) row format delimited fields terminated by ‘,’ collection items terminated by ‘‐’ map keys terminated by ‘:’;

load data local inpath ‘/export/data/hivedata/complex_map.txt’ into table complex_map;

以普通字符串映射:

create table complex_map_s(id int,name string,hobby string) row format delimited fields terminated by ‘,’;

  • Struct

集合元素可以类型不一样 例如c的类型为STRUCT{a INT; b INT},我们可以通过c.a来访问域a

1,zhou:30
2,yan:30
3,chen:20
4,li:80

create table complex_struct(id int, info struct<name:STRING, age:INT>) ROW FORMAT DELIMITED FIELDS TERMINATED BY ‘,’ COLLECTION ITEMS TERMINATED BY ‘:’;

load data local inpath ‘/export/data/hivedata/complex_struct.txt’ into table complex_struct;

select info.age from complex_struct;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值