hive 内置函数

在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  

猜你喜欢

转载自blog.csdn.net/cutwind/article/details/78246943