- 1.pom.xml添加以下依赖
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>2.6.5</version>
</dependency>
<dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-exec</artifactId>
<version>1.1.0</version>
</dependency>
- 2.新建一个java类继承 org.apache.hadoop.hive.ql.exec.UDF
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public final class Lower extends UDF {
public Text evaluate(final Text s) {
if (s == null) {
return null;
}
return new Text(s.toString().toLowerCase());
}
}
3.编译一下这份代码,并把它打包成myLib.jar
4.将myLib.jar上传到hdfs上
- 5.客户端连上hive server2,运行以下命令
CREATE FUNCTION my_low AS 'com.udf.Lower' USING JAR 'hdfs:///user/hive/warehouse/udf/myLib.jar';
6.使用udf
7.如果修改了代码重新打包并上传了myLib.jar,需要连上hive后运行以下语句才能生效
RELOAD FUNCTION;