• hive的内置函数和自定义函数


    一、内置函数

      1.一般常用函数  

    1.取整函数
        round()  当传入第二个参数则为精度
        bround() 银行家舍入法:为5时,前一位为偶则舍,奇则进。
    2.向下取整
        floor()
    3.向上取整
        ceil/ceiling()
    4.生成随机数
        rand ()   范围[0,1),传入种子时生成稳定随机数
    5.自然指数函数
        exp ()   e的n次方
        log10 ()   10为底的对数函数
        ln()     e为底的对数函数
        log(base,v)base为底的函数
    6.幂函数
        pow/power (base,exponent)
    7.根函数
        aqrt()    开平发
        cbrt()    开立方
    8.绝对值函数
        abs()
    9.进制转换
        bin()                转二进制
        hex()                转十六进制
        unhex()            反转十六进制
        conv(v,from,to)    进制转换函数
    10时间函数
        unix_timestamp()              获取时间
        from_unixtime(ut,formats)    ut转为日期字符串
        unix_timestamp(timestr,fs)    日期转化ut
        to_data(timestr)                返回日期部分
        year(timestr)                    返回指定部分,其他类似
        datediff(endDate,startD)        日期比较函数(返回日期之间的天数)
        date_add(startDate,days)        日期增加,返回当前日期计算后的日期字符串
        date_sub(startDate,days)        日期减少
    View Code

      2.字符串常用函数

    1.取长度
        length()
    2.反转
        reverse()
    3.字符串连接函数
        concat(strS)                    无分隔符连接
        concat_ws(separator,strS)    分隔符连接
    4.字符串截取
        substr/substring(str,index)     为正截取至此,为负截取后index个
        ~~~~str,index,length)        从index截取length个字符,正左负右
    5.大小写转换
        upper/ucase ()
        lower/lcase ()
    6.去空格函数
        trim()                        两边去空格
        ltrim()                        左边去空格
        rtrim()                        右边去空格
    7.正则表达式
        regexp_replace(str,rge,replace)    替换字符串
        regexp_extract(str,reg,index)    查找匹配字符,0返回全部,1返回第一个括号里的
    8.URL解析函数
        parse_url (str,’{extractPart}’[,’{extractKey}’])
        选项有:[HOST,PATH,QUERY,REF,PROTOCOL,FILE,AUTHORITY,USERINFO]
        select parse_url('http://facebook.com/path/p1.php?query=1', 'HOST') from dual;---facebook.com​
    9.json函数
        get_json_object(jsonstr,'$.name')
    10.字符串生成和补足函数
        space(n)                  空字符串
        repeat(str,n)                重复字符串
        lpad(str,legth,addstr)        左补足
        split(str,splitstr)            字符串分割
    View Code

    二、自定义函数

    自定义函数加载步骤 -> 只对当前会话有效
    (1)新建项目 - JavaProject
    (2)将hive-exec-1.2.2.jar添加至构建路径中
    (3)新建包 -> 新建类(继承UDF)
    (4)新建方法evaluate -> 指定返回值类型和参数列表
    (5)导出项目 -> jar包(只需要包含src下的内容)
    (6)上传jar包至Linux系统
    (7)打开Hive会话
    (8)加载jar包:add jar /home/bigdata/udf.jar; -> 将jar包添加至构建路径(类的搜索加载路径)
    (9)将jar包中的类进行函数的命名
    create temporary function sub as 'com.sand.udf.SubString';
    (10)show functions; -> 验证是否添加成功
    

     三、创建虚表

    为了方便测试,可仿照oracle创建dual表
    1.新建一个dual表
    	create table dual(dummy string);
    2.创建仅包含X的文件
    	echo X >/home/hadoop/dual.txt
    3.上传数据
    	load data local inpath '/home/hadoop/dual.txt' overwrite into table dual;
    4.测试
    	select 1+1 from dual ;  返回2则成功
    
  • 相关阅读:
    shelve模块和xml模块
    time模块,random模块和shutil模块
    包的使用
    目录开发规范
    redis 初步认识四(redis锁,防并发)
    redis 初步认识三(设置登录密码)
    redis 初步认识二(c#调用redis)
    微信小程序 初步认识一(微信运动步数)
    redis 初步认识一(下载安装redis)
    c# 7.0 6.0 新语法
  • 原文地址:https://www.cnblogs.com/OnTheWay-0518/p/9649226.html
Copyright © 2020-2023  润新知