当前位置: 移动技术网 > IT编程>数据库>其他数据库 > hive笔记:复杂数据类型-array结构

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

2018年11月03日  | 移动技术网IT编程  | 我要评论

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文件应注意,保持数组的分隔符和前面几列的分隔符要不一样。

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

 

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网