hive的基础函数>>集合函数, 条件函数, 类型转换函数

发布于:2025-03-23 ⋅ 阅读:(22) ⋅ 点赞:(0)

集合函数

size函数

size(Map<K.V>)  ;    size(Array<T>)

select size(`map`("id",10086,"name","zhangsan","age",18));

 

 

select size(`array`(11,22,33));

 返回"3"

map_keys函数

 map_keys(Map<K.V>) 提取 map 类型数据结构中的所有键(Key),以数组的形式返回这些键。

select map_keys(`map`("id",10086,"name","zhangsan","age",18));

map_values函数

map_values(Map<K.V>)   

提取 map 类型数据结构中的所有值(Value),并以数组的形式返回这些值。

select map_values(`map`("id",10086,"name","zhangsan","age",18));

array_contains

array_contains(Array<T>, value)

用于检查一个数组中是否包含某个特定的元素。如果数组包含该元素,函数返回 true;否则,返回 false

select array_contains(`array`(11,22,33),11);

返回"true"

数组排序函数

sort_array(Array<T>)

select sort_array(`array`(12,2,32));

返回 [2, 12, 32]

sort_array() 函数默认对数组进行升序排序。如果需要对数组进行降序排序,可以通过传递一个布尔值参数来指定排序方式。具体来说,sort_array(array, asc) 的第二个参数 asc 决定了排序的顺序:

asc 是单词 “ascending” 的缩写,意思是“升序”

条件函数

if条件判断

if(boolean testCondition, T valueTrue, T valueFalseOrNull)

  • 如果条件为 true,则返回 valueTrue

  • 如果条件为 false,则返回 valueFalseOrNull

  • T 是返回值的类型,可以是任意类型(如整数、字符串、浮点数等)。

select if(1=2,100,200);

返回"200"

空值判断函数

isnull( a )

用于检查一个值是否为 NULL。如果值为 NULL,则返回 true;否则返回 false

select isnull("allen");

返回"false"

非空判断函数

isnotnull ( a )

和空值判断函数相反

空值转换函数

nvl(T value, T default_value)

select nvl("allen","itcast");

返回 "allen"

select nvl(null,"itcast");

返回"itcast"

非空查找函数

COALESCE(T v1, T v2, ...)

返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL

select COALESCE(null,11,22,33);

返回 11

case when函数

select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end;

 返回 "mary"

类型转换函数

CAST 函数

用于将一个表达式显式地转换为指定的数据类型