• Hive进阶_开发Hive的自定义函数


    Hive中的自定义函数简介

    (1) 在类中创建自定义函数。自定义UDF需要继承'org.apache.hadoop.hive.ql.exec.UDF',实现evaluate函数,evaluate函数支持重载。

    (2) 将该类所在的包导出成jar包,放入linux目录下。

    (3) 进入hive客户端,删除旧的jar包

    hive> delete jar /dir/.jar;

    (4) 添加新的jar包

    hive> add jar /dir/.jar

    (5) 创建临时函数,指向jar包中的类

    hive> create temporary function <函数名> as 'java类名';

    (6) 使用临时函数

    select <函数名> (参数);
    drop temporary function <函数名>;

    Hive中的自定义函数案例

    package demo.udf;
    
    import org.apache.hadoop.hive.ql.exec.UDF;
    import org.apache.hadoop.io.Text;
    
    public class ConcatString extends UDF {
        // string can not translation in hadoop
        public Text evaluate(Text a, Text b) {
            return new Text(a.toString() + "*******" + b.toString());
        }
    }
    View Code
    hive> delete jar /root/pl62716/hive/contactString.jar;
    Deleted [/root/pl62716/hive/contactString.jar] from class path
    hive> add jar /root/pl62716/hive/contactString.jar;
    Added [/root/pl62716/hive/contactString.jar] to class path
    Added resources: [/root/pl62716/hive/contactString.jar]
    hive> create temporary function myconcat as 'demo.udf.ConcatString';
    OK
    Time taken: 2.747 seconds
    hive> select myconcat('HELLO','world');
    OK
    HELLO*******world
    Time taken: 0.598 seconds, Fetched: 1 row(s)
  • 相关阅读:
    shell基础
    函数属性
    this的使用
    循环
    正则表达式中的方法
    判断是不是数组
    ECMAScript5中数组方法
    ECMAScript3中数组方法
    break和continue、return的区别
    用来枚举属性的对象工具函数
  • 原文地址:https://www.cnblogs.com/liupuLearning/p/6349686.html
Copyright © 2020-2023  润新知