介绍
Hive内置了一些常用的函数,比如sum、count等。如果这些内置函数满足不了统计业务逻辑时,用户可以添加自定义函数,实现复杂业务的统计计算。
官方网址内置函数
官方网址自定义函数
从功能上划分,自定义函数包含三类:
UDF(User Defined Function):一对一模式,一条数据进,一条数据出。官网UDF
UDAF(User-Defined Aggregation Functions):多对一模式,多条数据进,一条数据出。官网UDAF
UDTF(User Defined Table Generating Function):一对多模式,一条进,多条出。官网UDTF
如何使用自定义函数
1、在自己项目中引入hive依赖,根据业务需要继承不同的基类。
UDF需要继承UDF基类,并实现evaluate()方法
UDAF需要实现AbstractGenericUDAFResolver2和GenericUDAFEvaluator接口
UDTF需要继承GenericUDTF
2、编译打jar包,添加到hive中
add jar my_jar.jar;
3、创建自定义函数
CREATE FUNCTION my_lower AS 'com.test.udf.myclass'
4、使用函数
select my_lower(name)
UDF编写
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class MyUDF extends UDF {
public Text evaluate(final Text s) {
if (s == null) {
return null; }
return new Text(s.toString().toLowerCase());
}
}
UDAF
import org.apache.hadoop.hive.ql