hive常用内部函数
hive是一种典型的数据仓库分析工具,常用语编写hql语句进行指标分析。在编写hql的过程中无疑会用到很多的函数,哪本章来编写一些常见的函数。常见函数很多,不同常见不同人员,使用不一样,不喜勿喷。
1、随机函数rand()
格式:rand([int seed])
返回:double
select rand();
select rand(100);
2、切分函数split()
格式:split(str,spliter)
返回:array
select split(rand()*100,'\\.')[0];
3、字符串截取函数substring() 或 substr()
格式:substring(str,start,length) substr(str,start,length)
返回:string
select substring(rand()*100,0,2);
select substr(rand()*100,0,2);
4、判断函数if()
格式:if(condition,true,false)
返回:true或者flase部分的值
select
s.id,
s.name,
if(s.sex = 1,'男','女')
from s_tmp s
;
select
s.id,
s.name,
if(s.id = 1,'男',if(s.id = 2,'女','妖'))
from s_tmp s
;
5、选择函数case when
类似于java中的swith。比if函数更加的具有扩展性。
格式:
case 值
when 1 then ''
...
else
end
返回:then或者else后的值
格式2:
case
when 值=1 then ''
...
else
end
返回:then或者else后的值
select
s.id,
s.name,
case s.sex
when 1 then '男'
when 2 then '女'
else '妖'
end
from s_tmp s
;
select
s.id,
s.name,
case
when s.sex=1 then '男'
when s.sex=2 then '女'
else '妖'
end
from s_tmp s
;
6、正在替换函数regexp_replace()
格式:regexp_replace(str,old_string,new_str)
返回:string
select regexp_replace('1.png','.png','.jpg');
select
s.id,
regexp_replace(s.name,'zhangsan','lisi')
from s_tmp s
;
7、类型转换 函数cast()
格式: cast(x as type)
返回:type类型
select cast(1.0 as int);
select cast(rand()*100 as int);
8、四舍五入函数round()
格式:round(double,保留位数)
返回:double
select round(rand()*100);
select round(rand()*100,2);
9、连接函数concat() 或者 concat_ws()
格式:concat(str1,str2...) 或者 concat_ws(split_str,str1,str2....)
返回:string
select concat("1","2");
select concat_ws("|","1","3","2");
select
concat_ws('|',cast(s.id as string),s.name,cast(s.sex as string))
from s_tmp s
;
10、字符串长度函数length()
格式:length(str)
返回:int
select
length(s.name)
from s_tmp s
;