--查询hive的内置函数列表
show functions;
--查询具体函数的使用描述
desc function extended 函数名
desc function extended current_database;
一.字符串函数
1.字符串的拆分 :split();
select split('hello,java;hi,bigdata','[,;]');
[ ]内可以写多个分隔符
----获取字符串拆分后的元素
--通过数组下标获取元素
select split('hello,java;hi,bigdata','[,;]') [0];
2.字符串的拼接:concat()
select concat('abc','def');
--根据指定的分隔符拼接字符串: concat_ws()
concat_ws(sep,str2,str3)
select concat_ws('.','www','baidu','com');
3.字符串的截取 : substr()
//字符串的起始索引位置为1,从索引位置为5的字符开始截取 到字符串的结尾
select substr('facebook',5); ---book
如果截取的起始索引位置为负数,表示从字符串的末尾位置开始 向前找到索引位置
select substr('facebook',-5);
从索引位置为5的字符开始截取,j截取长度为2
select substr('facebook',5,2); --bo
substring()与substr()函数一致
4.查询指定字符串出现的位置:instr()
--instr(str,substr):在字符串str中查找substr首次出现的索引位置,如果不存在则返回0
select instr('facebook','b');
5.获取字符串的长度:length()
select length ('facebook');
6.将字符串的字母转换大写 upper
select upper('min')
7.将大写字母转换成小写 lower()
select lower('MAX')
8.去除字符串前后的空格:trim()
select trim(' strin g ');
--ltrim():去除字符串左侧的空格
--rtrim():去除字符串右侧的空格
9.对字符串进行替换:regexp_replace()
--string regexp_replace(str,正则表达式,replaceStr):将字符串中符合正则表达式的字符串替换
select regexp_replace('foobar','oo|ar',''); --fb
10.对于json字符串进行元素提取:get_json_object()
二.类型转换函数:cast()
--newtype cast(attr as newtype): 将字符串attr转换成newtype类型
--将字符串1转换成double类型
newtype cast('1' as double)
三.数值函数
1.对浮点数进行四舍五入:round()
根据浮点数中的小数第一位进行四舍五入,返回一个整数
select round(12.3456); ---12
select round(12.789); ---13
--返回浮点数的指定小数位置,进行四舍五入后的值
select round(12.3456,1);
2.对浮点数进行向下取整:floor()
select floor(1.1); --1
select floor(1.9); --1
select floor(-1,9); -- -2
3.对浮点数进行向上取整:ceil()
select cail(1.1); --2
select ceil(-1.9) -- -1
4.获取数值的绝对值:abs()
select abs(-1.1); -- 1.1
5.获取一个随机数 :rand()
--获取一个0-1之间的随机数
select rand();
--输入一个种子数如果种子数固定则获取的浮点随机数也是固定的
select rand(种子数);
四.聚合函数
sum()
count()
max()
min()
avg()