什么是UDF,UDAF,UDTF函数
UDF简单来说就是一对一,一个输入,一个输出
UDAF:User- Defined Aggregation Funcation;用户定义聚合函数,可对多行数据产生作用;也是聚合函数;
UDTF:User-Defined Table-Generating Functions,用来解决输入一行输出多行,但不怎么使用,使用explode,即用户定义表生成函数就可满足需求;
使用Java实现UDF
以实现string_upper(LETTER) = letter
为例
java端
1,创建maven工程,导入相关依赖
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-common</artifactId>
<version>1.1.0</version>
</dependency>
build替换成这个
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8