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 
    
  • 相关阅读:
    iOS中Zbar二维码扫描的使用
    SOJ 1135. 飞跃原野
    SOJ 1048.Inverso
    SOJ 1219. 新红黑树
    SOJ 1171. The Game of Efil
    SOJ 1180. Pasting Strings
    1215. 脱离地牢
    1317. Sudoku
    SOJ 1119. Factstone Benchmark
    soj 1099. Packing Passengers
  • 原文地址:https://www.cnblogs.com/Tcorner/p/12857055.html
Copyright © 2011-2022 走看看