Hive自定义UDF函数

创建一个Maven项目

添加UDF依赖依赖

<dependencies>
    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.6.0</version>
    </dependency>
    <dependency>
        <groupId>org.apache.hive</groupId>
        <artifactId>hive-exec</artifactId>
        <version>1.1.0</version>
    </dependency>
</dependencies>

创建一个类并继承UDF 并重写evaluate方法

package com.ruozedata.udf;

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

public class Append extends UDF {

    public Text evaluate(final Text s, final Text text) {
        if (s == null || text == null) { return null; }
        return new Text(s.toString() + text.toString());
    }

}

打成JAR包,并上传到Hive中

        

#####上传方式一:只在当前会话中有效
add jar /opt/hive-udf-1.0.jar;

#####上传方式二:将jar包放在hive的lib下,hive启动是加载
cp hive-udf-1.0.jar $HIVE_HOME/lib/

在Hive中注册

#####注册方式一:临时函数,只在当前会话中有效
create temporary function append as 'com.ruozedata.udf.Append';

#####注册方式二:永久有效,在所有会话中都有效
##### hive 0.13.0及以上版本有效
create function append as 'com.ruozedata.udf.Append';
##### hive 1.2.0及以上版本有效,获取由不同HiveCLI会话完成的永久功能的任何更改。
RELOAD FUNCTION;

#####注册方式三:永久有效,在所有会话中都有效
##### hive 0.13.0及以上版本有效
CREATE FUNCTION append AS 'com.ruozedata.udf.Append' USING JAR 'hdfs:///hive-udf-1.0.jar';

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值