欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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

程序员文章站 2022-04-18 12:57:22
array 结构 (1)语法:array(val1,val2,val3,…) 操作类型:array array类型的数据可以通过'数组名[index]'的方式访问,index从0开始: (2)建表: create external table temp.array_20181101_v2 ( did ......

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)查询方法或函数:

原表数据

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

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

案例:

%jdbc(hive)

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

from temp.array_20181101_v2

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

 

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

如:

%jdbc(hive)

select did,meiti

from temp.array_20181101_v2

where array_contains(meiti, '1118')

  and !array_contains(meiti, '1370')

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

 

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;

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

 

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

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

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