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