hive 內建函式
阿新 • • 發佈:2018-11-05
在Hive中,函式包括以下型別:
一、內建函式
1、數學函式
[plain] view plain copy
print?
(1)round:四捨五入
select round(數值,小數點位數);
(2)ceil:向上取整
select ceil(45.6); --46
(3)floor:向下取整
select floor(45.6); --45
2、字元函式
[plain] view plain copy
print?
(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######
3、收集函式
[plain] view plain copy
print?
select size(map(1,'yy',2,'xx')); --2 map結合的元素個數
4、轉換函式
[plain] view plain copy
print?
select cast(1 as float); --1.0
select cast('2016-05-22' as date); --2016-05-22
5、日期函式
[plain] view plain copy
print?
(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 (9)查詢當前日期:select substring(from_unixtime(unix_timestamp(),'yyyy-MM-dd HH:mm:ss'),1,10)
6、條件函式
coalesce:從左到右返回第一個不為null的值
case…when…:條件表示式
[plain] view plain copy
print?
select ename,job,sal,
case job when 'president' then sal+100
when 'manager' then sal+800
else sal+400
end
from emp;
二、聚合函式
[plain] view plain copy
print?
(1)count:總數
(2)sum:和
(3)max:最大值
(4)min:最小值
(5)avg:平均數
轉換成MR作業
三、表生成函式
[plain] view plain copy
print?
select explode(map(1,'xx',2,'yy',3,'zz'));
轉換成MR作業,其結果如下
[plain] view plain copy
print?
1 xx
2 yy
3 zz