Hive提供大量内置函数供开发者使用,也可以自定义函数使用
1、内置函数:
- 标准函数(字符函数、转换函数、数学函数、日期函数、集合函数、条件函数 )
- 聚合函数
- 表生成函数
--查看内置函数
show functions;
--查看某个内置函数的用法
desc function extended 函数名;
常用内置函数如下:
--concat:字符串拼接
select concat("abc","ef");
--示例:将姓名和部门拼接
select concat(name,dept_num) as con from employee_contract;
--concat_ws(str1,str2,":") 将str1和str2用:拼接起来
--instr
select instr("abcdef","cd") --查找cd在字符串出现的位置
--判断一个子字符串是否在这一列中存在
select * from employee where instr(name,"i")>0;
--length
select length("hello"); --5
select length(name) from employee_contract;
--locate
select locate("a","abc:hello world",4); --从第四位开始查看a的位置
--lower/upper
select lower("hello SPARK"); --hello spark
select upper("hello SPARK"); --HELLO SPARK
--regexp_replace
select regexp_replace("abcdefg","de","hahahaha"); --将字符串里的de替换成hahahaha
--split
select split("hello,hive",","); --按,切分
--substr
--"2020-12-14 10:17:30"
select substr("2020-12-14 10:17:30",1,7); --将字符串1到7位截取出来
select substring("2020-12-14 10:17:30",1,7);
--trim
select trim(" hello world "); --去掉字符串两端的空格
--类型转换函数
--cast(expr as <type>) 将expr转换成type类型
select cast("1.2" as int); --1
--数学函数
--round 四舍五入
select round(1.2235475684122); --结果:1
select round(1.2235475684122,2); --结果:1.22
--floor 向下取整
select floor(6.90); --结果:6
select floor(-6.90); --结果:-7
--rand 随机数
select rand(2); --生成随机数,2是随机因子,随机因子相同,生成的随机数也相同
--power
select power(8,3); --结果:512.0,8的3次方
--abs(double a) 计算绝对值
select abs(-3.7); --结果:3.7
--日期函数
--from_unixtime 将时间戳转换成format格式
--unix_timestamp() 获取本都失去下的时间戳