hive中自定义函数的使用

1.编写自定义类

public class FirstUDF extends UDF {
//重写evaluate方法
    public String evaluate(String str){
        String result=null;
        if(!StringUtils.isEmpty(str)){
            result=str.toUpperCase();
        }
        return result;
    }
}

pom.xml,加⼊以下maven的依赖包 

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

2.使用maven打包

打包好的文件在当前工程下的target目录下

3.将打包好文件上传到linux中的某个目录(/root)

修改.jar的名字为udf.jar

这种方式只能是当前使用,退出以后就不能使用了

第一种方式

进⼊到hive客户端,执⾏下⾯命令
hive> add jar /root/udf.jar
-- 创建⼀个临时函数名,要跟上⾯hive在同⼀个session⾥⾯:
hive> create temporary function toUP as '包名加类名';
-- 检查函数是否创建成功
hive> show functions;
-- 测试功能
hive> select toUp('abcdef');
-- 删除函数
hive> drop temporary function if exists toUP;

第二种方式

[root@hadoop01 bin]# vi ./hive-init
# 加入下面脚本
add jar /home/qf-2102-1.0.jar;
create temporary function myConcat as 'com.al.hive.FirstFun';
启动hive的时候带上初始化文件:
[root@hadoop01 bin]# hive -i ./hive-init

第三种方式

 直接hive就可以

cd /usr/local/hive/bin
vi .hiverc
添加配置文件
add jar /root/udf.jar;
create temporary function toUP as '包名加类名';

第四种方式

#将编写的udf的jar包上传到hdfs上
[root@hadoop01 ~]# hdfs dfs -mkdir /auxjars
[root@hadoop01 ~]# hdfs dfs -put /home/udf.jar /auxjars
create function test.myConcat as 'com.al.hive.FirstFun' using jar 'hdfs://hadoop01:9000/auxjars/udf.jar';

 第五种方式

直接将jar包放在/usr/local/hive/lib中

直接使用就可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值