hive-UDF函数使用方法范例整理

本文详细介绍如何使用Java编写并部署Hive UDF函数,包括编写代码、打包、配置pom.xml、导入hive及测试过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

udf函数

注:配置java里的pom.xml文件。在build里修改启动类的路径位置。
在这里插入图片描述
1、用java写出函数代码,写完之后打jar包

package kb07.udf;

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

public class MyUDF extends UDF {
    public Text evaluate(Text text){
        //将所有数据转为24小时制
        String time=text.toString();
        int hour = 0;
        if (time.endsWith("PM")){
            hour=Integer.parseInt(time = time.split(":")[0])+12;
            hour=hour>=24?0:hour;
        }else {
            hour=Integer.parseInt(time = time.split(":")[0]);
        }

        //时间分段
        if (hour>=5 && hour <8){
            time="early morning";
        }else if (hour>=8 && hour <11){
            time="morning";
        }else if (hour>=11 && hour <13){
            time="noon";
        }else if (hour>=13 && hour <18){
            time="afternoon";
        }else if (hour>=18 && hour <22){
            time="evening";
        }else {
            time="night";
        }

        return new Text(time);
    }
    
    public static void main(String[] args) {
        MyUDF mu=new MyUDF();
        System.out.println(mu.evaluate(new Text("12:00 PM")));
    }
}

2、启动hive,在hdfs中,创建funct文件夹,通过下列代码,将jar包导入到hive中,创建mytime函数

create function mytime as 'kb07.udf.MyUDF' using jar 'hdfs://192.188.252.11:9000/func/kb07-1.0-SNAPSHOT-jar-with-dependencies.jar';

可以测试udf函数。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值