hive复杂数据类型使用

array

建表
--创建基础表
create table stu_sub(id integer, subject string) 
row format delimited fields terminated by '\t';
--创建集合表
create table stu_subs(id integer, subjects array<string>) 
row format delimited fields terminated by '\t' 
collection items terminated by '|';
插入数据
--往基础表插入两份一样的数据,为后续使用
insert into table stu_sub values(1001, 'java'),(1001, 'c++'),(1001,'python'),(1002,'c'),(1002,'html');
insert into table stu_sub values(1001, 'java'),(1001, 'c++'),(1001,'python'),(1002,'c'),(1002,'html');
第一种,collect_list(),集合不去重
insert into table stu_subs
select id, collect_list(subject) subjects from stu_sub group by id;

--查看数据:
id  |subjects                                     |
----+---------------------------------------------+
1001|["java","c++","python","java","c++","python"]|
1002|["c","html","c","html"]                      |
第二种,collect_set(),集合去重
--刚才插入过了,这里覆盖掉
insert overwrite table stu_subs
select id, collect_set(subject) subjects 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值