1. Hive内置Collection Functions
以下函数为Hive是提供的内置集合函数:
返回类型 | 函数(签名) | 函数说明 |
---|---|---|
int | size(Map<K.V>) | Returns the number of elements in the map type. |
int | size(Array) | Returns the number of elements in the array type. |
array | map_keys(Map<K.V>) | Returns an unordered array containing the keys of the input map. |
array | map_values(Map<K.V>) | Returns an unordered array containing the values of the input map. |
boolean | array_contains(Array, value) | Returns TRUE if the array contains value. |
array | sort_array(Array) | Sorts the input array in ascending order according to the natural ordering of the array elements and returns it (as of version 0.9.0). |
2. 测试Collection Functions
sql
with tmp_map_data as (
select map(
"k2", "v2",
"k1", "v1",
"k3", "v3"
) as m
)
select
size(m), -- 3
map_keys(m), -- ["k1","k2","k3"]
map_values(m), -- ["v2","v1","v3"]
sort_array(map_keys(m)), -- ["k1","k2","k3"]
array_contains(map_keys(m), 'k3'), -- true
array_contains(map_keys(m), 'k4') -- false
from tmp_map_data;
3. 说明
Hive提供的内置集合函数, 在做一些集合内统计/查找/分析等场景下非常方便, 熟练使用, 可以极大的简化这类场景的开发.