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提供的内置集合函数, 在做一些集合内统计/查找/分析等场景下非常方便, 熟练使用, 可以极大的简化这类场景的开发.