hive学习day04---用户自定义函数(UDF)

1.用户自定函数:
	应用场景:当有一些需求,hive内置函数满足不了sql查询的时候,用户可以通过java封装一个函数。
	分类:
	udf:输入一条数据,返回一条,1对1.
	UDAF:输入多条数据,输出1条。多对1.
	UDTF:输入一条数据,输出多条数据。1对多。
 	UDF用的是最多的。
 	UDF函数可以直接应用于select语句,对查询结构做格式化处理后,在输出内容
 2.编写UDF函数 的时候需要注意一下几点:
 	(1)在pom文件中导入相关依赖:
 <dependency>
            <groupId>org.apache.hive</groupId>
            <artifactId>hive-exec</artifactId>
            <version>1.2.1</version>
 </dependency>
	(2)自定义UDF需要继承org.apache.hadoop.hive.ql.exec.UDF.
	(3)需要evaluate函数
package hadoopdemo;

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

public class HiveUdf_demo extends UDF {
//方法名称必须是evaluate
	//将某个字段全部转成小写
	public String evaluate(String clo) {
		//
		String lowerCase = clo.toLowerCase();
		return lowerCase;
		
		
	}	
}
	(4)把程序打包放到目标机器上去
	(5)进入hive客户端,添加jar包:add jar /usr/local/testdata/hive_UP.jar;
	(6)创建临时函数:hive>create temporary function f_up as 'hive_demo.hive_udf';
	查询HQL语句:
		select f_up(line) from wc_test;
	销毁临时函数:hive>drop temporary function f_up;
	注:UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值