UDF函数构造
一、概述
UDF函数其实就是一个简单的函数,执行过程就是在Hive转换成MapReduce程序后,执行java方法,类似于像MapReduce执行过程中加入一个插件,方便扩展。UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF。
Hive可以允许用户编写自己定义的函数UDF,来在查询中使用
二、UDF类型
Hive中有3种UDF:
UDF:操作单个数据行,产生单个数据行;
UDAF:操作多个数据行,产生一个数据行;
UDTF:操作一个数据行,产生多个数据行一个表作为输出;
三、UDF开发流程
1、继承UDF类
step1:用idea新建一个普通的maven工程
step2:pom.xml依赖包,依赖包的版本要分别和你的hadoop和hive的版本一致
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.apache.hive/hive-exec -->
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0</version>
</dependency>
2、重写evaluate()方法并实现函数逻辑
step3:新建java类,继承UDF类,并且重写evaluate()方法,因为UDF类中并没有evaluate这个方法,所以要自己写。