1.4.3、集合函数
1.4.3.1、size
select map('a',1,'b',2),size(map('a',1,'b',2)),array(1,2,3,4),size(array(1,2,3,4));
1.4.3.2、map_keys
select map('a',1,'b',2), map_keys(map('a',1,'b',2));
1.4.3.3、map_values
select map('a',1,'b',2), map_values(map('a',1,'b',2));
1.4.3.4、array_contains
select array(1,2,3,4),array_contains(array(1,2,3,4),1),array_contains(array(1,2,3,4),5);
注意:该函数中判断参数的类型要和数组元素类型保持一致,否则会查询失败
select array(1,2,3,4),array_contains(array(1,2,3,4),1),array_contains(array(1,2,3,4),'a');
1.4.3.5、sort_array-->0.9.0
select array(4,2,3,234,234,23454,23),sort_array(array(4,2,3,234,234,23454,23));
支持版本+ | 返回值类型 | 函数名称 | 功能描述 |
int | size(Map<K.V>) | 返回map中的元素个数 | |
int | size(Array<T>) | 返回array数组中的元素个数 | |
array<K> | map_keys(Map<K.V>) | 返回map中的所有key | |
array<V> | map_values(Map<K.V>) | 返回map中的所有value | |
boolean | array_contains(Array<T>, value) | 如果数组包含值,则返回 TRUE。 | |
Hive0.9.0 | array<t> | sort_array(Array<T>) | 根据数组元素的自然顺序对输入数组进行升序排序并返回 |
1.4.4、类型转化函数
1.4.4.1、binary
select binary('a'),binary('2');
1.4.4.2、cast
select cast('123' as int);
返回值类型 | 函数名称 | 功能描述 |
binary | binary(string|binary) | 将参数转换为二进制 |
Expected "=" to follow "type" | cast(expr as <type>) | 将表达式 expr 的结果转换为 <type>。例如, cast('1' as BIGINT) 会将字符串 '1' 转换为其整数表示。如果转换不成功,则返回 null。如果 cast(expr as boolean) Hive 为非空字符串返回 true |