Hive自定义函数UDF示例

Hive自定义函数UDF示例

简单自定义函数只需继承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;