hive官网描述:
size()方法:用于获取泛型集合有多少个元素
例:
select size(array('a','b','c','d')) ;
结果:4
需要注意问题:当array或者map为null时,size的值为1。会导致统计结果出现误差
例:
select size(split('a,b,c,d',',')) -- 正常情况
,if(length('a,b,c,d')==0,0,size(split('a,b,c,d',','))) -- 添加判断
,size(array(null)) -- 为null的情况
,size(collect_set(concat_ws(',',null))) -- 为null的情况
,if(length(concat_ws(',',null))==0,0,size(collect_set(concat_ws(',',null)))) -- 添加判断
;
结果: 4 4 1 1 0
官网链接: link.