在hive中,自定义的函数可以根据功能的划分为3中:
第一种是:1进一出,我们称之为UDF函数,类似的功能有大写转小写;在name字段前加上一个前缀等功能,这种函数的功能是将传入的1个字段进行转换成另外一个字段
第二种是:1进多出,我们称之为UDTF函数,类似的函数功能是explode函数,输入一行数据,可以出来多组的数据
第三种是:多进一出,我们称之为UDAF函数,类似的函数有sum,avg等聚合函数,输入多行数据,只出来一个结果
下面我们来看一下,如何自定义这些函数
1、UDF函数
1、导包,继承org.aparche.hadoop.hive.ql.UDF
pom.xml文件如下 添加hive的依赖关系
<dependencies>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.2.1</version>
</dependency>
</dependencies>
2、创建evaluate函数,并且实现该函数,注意:大多数的博客说的是重写该函数,指的是重新写一个这个函数,而不是重写UDF类里面的evaluate函数,本人看过源码,UDF类中根本就没有evaluate函数。。。。
3、hive的命令打包提交UDF函数
3.1 使用idea打包jar包,并且将该jar包上传至集群,使用命令