Hive自定义函数(UDF)(0925)

Hive开发UDF的步骤:

  • 继承适当的UDF类或GenericUDF类
  • 覆盖适当的方法并实现相应的逻辑功能
  • 编译构建成jar包
  • 把编译好的jar包放到适当的HDFS路径中
  • 用jar创建临时/永久函数
  • 检查创建的函数
  • 不用这些函数的时候就删除他们

UDF类所在的包:

        <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>0.12.0</version>
        </dependency>

一个简单的字符串拼接函数Hconcat

package udf.exmaple;

import org.apache.hadoop.hive.ql.exec.UDF;

public class Hconcat extends UDF {

    public String evaluate(String str1, String str2, String sgin) {

        try {
            return str1 + sgin + str2;
        } catch (Exception e) {
            return "000000000";
        }
    }
}
  1. 构建Maven项目,编写Hconcat类必须继承UDF,并且需要必须重写evaluate方法。
  2. 把该Maven项目打包成jar包上传到HDFS的合适(自己随便找)目录中
  3. 在Hive中创建函数
create temporary function Hconcat as 'udf.exmaple.Hconcat' using jar 'hdfs:///user/root/Hconcat.jar';
//或者
add jar hdfs:///user/root/Hconcat.jar;
create temporary function Hconcat as 'udf.exmaple.Hconcat';
  1. 检查是否创建
show functions;
  1. 使用函数
select Hconcat("ID", user_id, "=") from users limit 5;
  1. 删除函数
drop temporary function Hconcat;
    原文作者:hipeer
    原文地址: https://www.jianshu.com/p/f26c93a089d3
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞