hive内置函数

发布于:2024-07-04 ⋅ 阅读:(130) ⋅ 点赞:(0)

--查询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()

           


网站公告

今日签到

点亮在社区的每一天
去签到