Hive的内置函数

参考文章:https://www.cnblogs.com/qingyunzong/p/8744593.html;                          https://blog.csdn.net/liu123641191/article/details/80845411

首先,放一个结构图:

一、数学函数

1、round(四舍五入):

round(45.926, 2)        -->        45.93        // 四舍五入保留两位小数   

round(45.926, 1)        -->        45.9          //四舍五入保留一位小数

round(45.926, 0)        -->        46.0          

round(45.926, -1)       -->        50.0

round(45.926, -2)       -->        0.0

2、ceil(向上取整):

ceil(45.9)        -->        46

3、floor(向下取整):

floor(45.9)        -->        45

二、字符函数

1、lower(转小写):

2、upper(转大写):

hive> select lower('Hello World'), upper('Hello World');
OK
hello world        HELLO WORLD

3、length(字符串长度,字符数):

hive> select length('Hello world'), length('你好');
OK 
11        2

3、concat(字符串拼接):

hive> select concat('Hello', '  world');
OK
Hello World 

5、substr(求子串):

substr(a,n):从字符串a中,第n位开始取,取右边所有的字符。

substr(a,m,n):从字符串a中,第m位开始取,取n个字符。

注意:字符串中的空格也算占用一个字符。

6、trim(去前后空格):

hive> select substr(' Hello World ', 3);
OK
Hello World

7、lpad(左填充):

8、rpad(右填充):

hive> select lpad('abcd', 10, '*'), rpad('abcd',10,'*');
OK
******abcd        abcd******

三、收集函数

1、size(返回map集合的个数):

格式:size(map(<key,value>,<key,value))

 四、转换函数

1、cast(转换数据类型):

hive> select cast(1 as float);
OK
1.0
hive> select cast('2018-06-28' as date);
OK
2018-06-28

五、日期函数

1、to_date(从一个字符串中取出为日期的部分):

hive> select to_date('2018-06-28 17:19:36');
OK
2018-06-28

2、year、month、day(从一个日期中取出相应的年、月、日):

hive> select year('2018-06-28 17:19:36'),month('2018-06-28 17:19:36'),day('2018-06-28 17:19:36');
OK
2018-06-28
 

3、weekofyear(返回输入日期在该年中是属于第几个星期):

hive> select weekofyear('2018-06-28 17:20:33');
OK
26

4、date_add(在一个日期基础上增加天数):

5、date_sub(在一个日期基础上减去天数):

hive> select date_add('2018-08-21 18:00:36', 2),date_sub('2021-07-15 08:00:00',2);
OK
2018-08-23    2021-07-13

六、条件函数

1、coalesce(从左到右返回第一个不为null的值):

 2、case...when...(条件表达式):

语法格式:case A when B then C [when D then E]* [else F] end

解释:对于A来说,如果判断为B则返回C,如果判断为D则返回E(此处判断条件可为多个),如果以上都不是则返回F。注意,最后还有还有一个end结束符。

例:给员工涨工资,总裁1000,经理800,其他400

select ename,job,sal
    case job when 'president' then sal+1000
             when 'manager' then sal+800
             else sal+400
    end
from emp;

七、聚合函数

1、count(返回行数)

2、sum(组内某列求和)

3、min(组内某列最小值)

4、max(组内某列最大值)

5、avg(组内某列平均值)

以薪资sal为例:

select count(*),sum(sal),max(sal),min(sal),avg(sal) from emp;

八、表生成函数

1、explode:把map集合中每个键值对或数组中的每个元素都单独生成一行的形式

九、总结:

支持的内置函数:

 支持的聚合函数:这里写图片描述

 

 

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值