hive笔记:复杂数据类型-array结构

array 结构

(1)语法:array(val1,val2,val3,…)  操作类型:array

array类型的数据可以通过'数组名[index]'的方式访问,index从0开始:

(2)建表:

create external table  temp.array_20181101_v2 
( did string,
 meiti array<string>

)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t'
COLLECTION ITEMS TERMINATED BY ','(必须使)
LOCATION '/tmp/201810/array'

注意:

a.必须添加COLLECTION ITEMS TERMINATED BY ','若不添加,虽然是array字段但结果不全,只有部分的meiti转换为array字段

b.'FIELDS TERMINATED BY' :字段与字段之间的分隔符
c.''COLLECTION ITEMS TERMINATED BY' :一个字段各个item的分隔符

(4)查询方法或函数:

原表数据

 

array类型的数据可以通过'数组名[index]'的方式访问,index从0开始

案例:

%jdbc(hive)

select did,meiti[0],meiti[1]

from temp.array_20181101_v2

 

 

array_contains():在字段类型为array中查找是否包含以及不包含某元素,在where后使用

如:

%jdbc(hive)

select did,meiti

from temp.array_20181101_v2

where array_contains(meiti, '1118')

  and !array_contains(meiti, '1370')

 

 

lateral view explode (array)字段

%jdbc(hive)

select did,meiti

from temp.array_20181101_v2

lateral view explode(meiti) b1 as meiti1

group by id ,meiti1;

 

 

(5)txt文件上传建表的格式问题

Txt文件应注意,保持数组的分隔符和前面几列的分隔符要不一样。

‘|’比较特殊,需要加转义符如,‘\|’,若是;’,/,或者空格则可以识别,

 

转载于:https://www.cnblogs.com/sonia0087/p/9895349.html

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值