在Hive中,函数包括以下类型:
一、内置函数
1、数学函数
[plain]
1. (1)round:四舍五入
2. select round(数值,小数点位数);
3. (2)ceil:向上取整
4. select ceil(45.6); --46
5. (3)floor:向下取整
6. select floor(45.6); --45
2、字符函数
[plain]
1. (1)lower:转成小写
2. select lower('Hive'); --hive
3. (2)upper:转成大写
4. select lower('Hive'); --HIVE
5. (3)length:长度
6. select length('Hive'); --4
7. (4)concat:拼接字符串
8. select concat('hello','Hive'); --helloHive
9. (5)substr:求子串
10. select substr('hive',2); --ive
11. select substr('hive',2,1); --i
12. (6)trim:去掉前后的空格
13. select trim(' hive '); -hive
14. (7)lpad:左填充
15. 对hive填充到10位,补位用#
16. select lpad('hive',10,'#'); --######hive
17. (8)rpad:右填充
18. select rpad('hive',10,'#'); --hive######
3、收集函数
[plain]
1. select size(map(1,'yy',2,'xx')); --2 map结合的元素个数
4、转换函数
[plain]
1. select cast(1 as float); --1.0
2. select cast('2016-05-22' as date); --2016-05-22
5、日期函数
[plain]
1. (1)to_date
2. select to_date('2015-05-22 15:34:23'); --2015-05-22
3. (2)year
4. select year('2015-05-22 15:34:23'); --2015
5. (3)month
6. select month('2015-05-22 15:34:23'); --5
7. (4)day
8. select day('2015-05-22 15:34:23'); --22
9. (5)weekofyear
10. select weekofyear('2015-05-22 15:34:23'); --21
11. (6)datediff
12. select datediff('2015-05-22 15:34:23','2015-05-29 15:34:23'); --[-7]
13. (7)date_add
14. select date_add('2015-05-22 15:34:23',2); --2015-05-24
15. (8)date_sub
16. select date_sub('2015-05-22 15:34:23',2); --2015-05-20
6、条件函数
coalesce:从左到右返回第一个不为null的值
case...when...:条件表达式
[plain]
1. select ename,job,sal,
2. case job when 'president' then sal+100
3. when 'manager' then sal+800
4. else sal+400
5. end
6. from emp;
二、聚合函数
[plain]
1. (1)count:总数
2. (2)sum:和
3. (3)max:最大值
4. (4)min:最小值
5. (5)avg:平均数
转换成MR作业
三、表生成函数
[plain]
1. select explode(map(1,'xx',2,'yy',3,'zz'));
转换成MR作业,其结果如下
[plain]
1. 1 xx
2. 2 yy
3. 3 zz