Hive常用函数 -- 条件函数和表格生成函数

条件函数

  1. If函数: if
    语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)
    返回值: T
    说明: 当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull
    hive> select if(1=2,100,200) from my_table;
    200
    hive> select if(1=1,100,200) from my_table;
    100
    
  2. 非空查找函数: COALESCE
    语法: COALESCE(T v1, T v2, …)
    返回值: T
    说明: 返回参数中的第一个非空值;如果所有值都为NULL,那么返回NULL
    hive> select COALESCE(null,'100','50) from my_table;
    100
    
  3. 条件判断函数:CASE
    语法: CASE a WHEN b THEN c [WHEN d THEN e]* [ELSE f] END
    返回值: T
    说明:如果a等于b,那么返回c;如果a等于d,那么返回e;否则返回f
    hive> Select case 100 when 50 then 'tom' when 100 then 'mary' else 'tim' end from my_table;
    mary
    hive> Select case 200 when 50 then 'tom' when 100 then 'mary' else 'tim' end from my_table;
    tim
    
  4. 条件判断函数:CASE
    语法: CASE WHEN a THEN b [WHEN c THEN d]* [ELSE e] END
    返回值: T
    说明:如果a为TRUE,则返回b;如果c为TRUE,则返回d;否则返回e
    hive> select case when 1=2 then 'tom' when 2=2 then 'mary' else 'tim' end from my_table;
    mary
    hive> select case when 1=1 then 'tom' when 2=2 then 'mary' else 'tim' end from my_table;
    tom
    

表格生成函数 Table-Generating Functions (UDTF)

  1. 数组拆分成多行:explode
    语法: explode(ARRAY)
    返回值: 多行
    说明: 将数组中的元素拆分成多行显示
    hive> select explode(array(1,2,3)) from my_table;
    OK
    1
    2
    3
    
  2. Map 拆分成多行:explode
    语法: explode(Map)
    返回值: 多行
    说明: 将 Map 中的元素拆分成多行显示
    hive> select explode(map('k1','v1','k2','v2')) from my_table;
    OK
    k2 v2
    k1 v1
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值