array类型的数据可以通过'数组名[index]'的方式访问,index从0开始:
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的分隔符
原表数据
案例:
%jdbc(hive)
select did,meiti[0],meiti[1]
from temp.array_20181101_v2
如:
%jdbc(hive)
select did,meiti
from temp.array_20181101_v2
where array_contains(meiti, '1118')
and !array_contains(meiti, '1370')
%jdbc(hive)
select did,meiti
from temp.array_20181101_v2
lateral view explode(meiti) b1 as meiti1
group by id ,meiti1;
txt文件应注意,保持数组的分隔符和前面几列的分隔符要不一样。
‘|’比较特殊,需要加转义符如,‘\|’,若是;’,/,或者空格则可以识别,
如对本文有疑问, 点击进行留言回复!!
去 HBase,Kylin on Parquet 性能表现如何?
如何找到Hive提交的SQL相对应的Yarn程序的applicationId
如何在 HBase Shell 命令行正常查看十六进制编码的中文?哈哈~
网友评论