一 新建JAVA项目 并添加 hive-exec-2.1.0.jar 和hadoop-common-2.7.3.jar
hive-exec-2.1.0.jar 在HIVE安装目录的lib目录下
hadoop-common-2.7.3.jar在hadoop的安装目录下的\share\hadoop\common
二 编一个一个类并继承UDF 并重写evaluate方法
下面以rownum为例
package com.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public class RowNumUDF extends UDF{
public static String signature = "_";
public static int order = 0;
public int evaluate(Text text){
if(text != null){
//分组排序的依据,列名,通常为主键
String colName = text.toString();
//处理第一条数据
if(signature == "_"){
//记下分组排序的字段:主键,并将rownum设为1
signature = colName;
order = 1;
//返回rownum
return order;
}else{
//首先比对是否和上一条主键相同
if(signature.equals(colName)){
//rownum依次加1
order++;
return order;
}else{
//如果主键改变,将rownum设为1
signature = colName;
order = 1;
return order;
}
}
}else{
//如果主键为空,则返回-1
return -1;
}
}
}
三 导出位jar包并在HIVE中注册