zoukankan      html  css  js  c++  java
  • Hive常用函数

    Hive常用函数

    cast函数

    CAST函数:显式的将一个类型的数据转换成另一个数据类型。

    语法为:cast(value AS TYPE)

    map函数

    MAP:MAP包含key->value键值对,可以通过key来访问元素。比如”userlist”是一个map类型,其中username是key,password是value;那么我们可以通过userlist['username']来得到这个用户对应的password

    语法:map(k1,v1,k2,v2,…)

    返回值:{'k1':'v1', 'k2':'v2'}

    说明:使用给定的 key-value 对,构造一个 map 数据结构

    举例:

    hive> select map('k1','v1','k2','v2') from test;
    OK
    {"k2":"v2","k1":"v1"}
    

    表格生成函数

    explode

    数组拆分成多行: explode
    语法: explode(ARRAY)
    返回值: 多行
    说明: 将数组中的元素拆分成多行显示
    举例:

    hive> select explode(array(1,2,3)) from lxw1234;
    OK
    1 
    2 
    3
    
    hive> select explode(map('k1','v1','k2','v2')) from lxw1234;
    OK
    k2 v2
    k1 v1
    

    判断函数

    函数: if

    If函数:if和case差不多,都是处理单个列的查询结果。

    语法: if(boolean testCondition, T valueTrue, T valueFalseOrNull)

    返回值: T

    说明:  当条件testCondition为TRUE时,返回valueTrue;否则返回valueFalseOrNull

    举例:if(条件表达式,结果1,结果2)相当于java中的三目运算符,只是if后面的表达式类型可以不一样。

    hive> select if(a=a,’bbbb’,111) from lxw_dual;
    
    -- result: bbbb
    
    hive> select if(1<2,100,200) from lxw_dual;
    
    -- result: 200
    

    非空查找函数: COALESCE

    语法: COALESCE(T v1, T v2, …)

    返回值: T

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

    hive> select COALESCE(null,’aaa’,50) from lxw_dual;
    
    -- result: aaa
    

    条件件判断函数: CASE A

    这种CASE A和if差不多,条件查询(常用)

    语法:

    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 lxw_dual;
    
            mary
    
    hive> Select case 200 when 50 then 'tom'when 100 then 'mary' else 'tim' end from lxw_dual;
    
            tim
    
    1. 条件判断函数 case

    这种case,case后面没有表达式,用于处理单个列的查询结果

    语法:

    CASE WHEN a THEN b [WHEN cTHEN 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 lxw_dual;
    
              mary
    
    hive> select case when 1=1 then 'tom' when 2=2 then 'mary' else 'tim' end from lxw_dual;
    
             tom 
    
  • 相关阅读:
    Redis内存回收策略
    7、IMS
    6、端局、汇接局、关口局、长途局
    5、IMS网元
    4、IMS
    3、NAT
    2、SIP
    1、B2BUA
    九、数据库——sql server 2008导入excel
    六十三、android pad
  • 原文地址:https://www.cnblogs.com/Tcorner/p/12857055.html
Copyright © 2011-2022 走看看