Hive自定义函数UDF(一)

在使用hive的时候,hive本身自带的函数不足以满足于我们需求的情况下,我们可以自定义满足我们需求的函数。

一、hive自定义函数步骤:

1、继承org.apache.hadoop.hive.ql.exec.UDF;

2、写固定的evaluate()方法。这个方法名字是固定的。

注意:evaluate方法支持重载。

二、实例演示

1、代码

package com.hive.test;

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

public class HiveUdf extends UDF{
    public String evaluate(int num){
        if(num>1000){
            return "very good";
        }else if(num>500){
            return "good";
        }else {
            return "bad";
        }
    }
}

2、将此代码打成jar包并上传linux

3、准备测试数据

[root@cmaster test]# vim num.txt 

4、创建表并且导入数据

hive> create table mytest(id int) row format delimited fields terminated by ' ';

hive> load data local inpath '/test/num.txt' into table mytest;

5、将jar加载到hive中

hive> add jar /test/hiveUdf_jar/hive_test.jar
    > ;

6、创建一个临时函数指向上边编译的类

hive> create temporary function myF as 'com.hive.test.HiveUdf';

7、可以调用这个函数了

hive> select myF(id) from mytest;
OK
very good
good
good
bad
Time taken: 1.742 seconds, Fetched: 4 row(s)

8、调用完函数可以删除

hive> drop temporary function myF;

注意:查询hive所有函数使用 show functions

hive> show functions;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

郝少

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值