简单自定义函数只需继承UDF类,然后重构evaluate函数即可
LowerCase.java:
package com.example.hiveudf;
import org.apache.hadoop.hive.ql.exec.UDF;
public final class LowerCase extends UDF {
public String evaluate(final String s) {
if (s == null) { return null; }
return new String(s.toString().toLowerCase());
}
}
依赖包只有hive-exec-0.13.1.jar,MANIFEST.MF文件为:
Manifest-Version: 1.0
Class-Path:
lib/hive-exec-0.13.1.jar
Main-Class: com.example.hiveudf.LowerCase
将上述java文件导出为test.jar, 上传到hive安装主机的一个目录上,如/usr/hive/test.jar
在hive中执行测试:
hive> add jar /usr/hive/test.jar;
hive>create temporary function mylower as 'com.example.hiveudf.LowerCase';
hive>select mylower ('ABCD');
输出:abcd
删除临时函数:
hive>drop temporary function mylower;