hive UDF编程

UDF编程(User Defined Function)

(1)创建java项目,添加maven依赖
 <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-jdbc</artifactId>
            <version>2.2.0</version>
</dependency>
 <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>2.2.0</version>
</dependency> 
(2)创建类继承org.apache.hadoop.hive.ql.UDF;实现evaluate函数,evaluate函数支持重载。
public class LowerUDF extends UDF {
    public Text evaluate(Text s) {
        if (s == null) { return null; }
        return new Text(s.toString().toLowerCase());
    }
}
(3)打成jar包
(4)注册

方式一:

//(1)执行命令添加jar,jar再本地文件系统
 add jar /home/bxp/Documents/doc/hivetest/hive.jar 
//(2)创建临时函数
create temporary function my_lower as "com.bxp.hadooptest.hive.udf.LowerUDF"
//(3)使用自定义函数
select my_lower(name) from emp;

方式二:

//此方式不需要添加jar,但是必须先将jar文件上传到hdfs文件系统
create function my_lower1 AS 'com.bxp.hadooptest.hive.udf.LowerUDF' using jar “hdfs://192.168.1.103/user/bxp/hive/jars/hivetest.jar";

注意:

UDF必须有返回类型,可以返回null,但是返回类型不能是void。
UDF中常用Text/LongWritable等类型,不推荐使用java类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值