Hive自定义的UDF函数

本文介绍如何在Hive中定义和使用自定义函数(UDF),包括创建临时和永久函数的方法。通过实例展示了如何将自定义函数打包并部署到Hive环境中,并探讨了如何让自定义函数在show functions命令中可见。

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

1、定义函数

定义自己的UDF函数,根据官网的案例https://cwiki.apache.org/confluence/display/Hive/HivePlugins

	package com.test.hive;
	 
	import org.apache.hadoop.hive.ql.exec.UDF;
	import org.apache.hadoop.io.Text;
	 
	public class HelloWorld extends UDF {
	    public Text evaluate(Text input) {
	        if (s == null) { return null; }
	        return new Text("HelloWorld:" + input);
	    }
	}

2、临时函数

把函数打包成jar包,放到linux中,打开hive,使用

add jar jar包路径;
list jars   #查看jar包

来把jar包加到hive中。
使用

create temporary function helloWorld as 'com.test.hive.HelloWorld';

来创建临时函数,这个函数只能在创建的session中使用,其他session则不能使用。

3、永久函数

上传jar到hdfs中

CREATE FUNCTION say_hello2 AS 'com.ruozedata.udf.HelloUDF' USING JAR 'hdfs://hadoop000:8020/lib/hive-1.0.jar';

hive的show functions命令不能显示出来自定义的函数,原数据里面可以查看。

修改源码来创建永久函数,show functions命令可以查看到

在FunctionRegistry.java中,放的是所有的内置函数,可以把自定义的函数放到源码内,在这个文件内添加一行代码,然后重新打包上传部署,这样show functions命令就可以查看到。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值