HIVE 编写自定义函数UDF

Posted OnTheWay_duking

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HIVE 编写自定义函数UDF相关的知识,希望对你有一定的参考价值。

一 新建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中注册

  

 

  

以上是关于HIVE 编写自定义函数UDF的主要内容,如果未能解决你的问题,请参考以下文章

HIVE 编写自定义函数UDF

hive自定义UDF函数,步骤详解

Hive开发自定义函数UDF

Hive从入门到精通8:Hive自定义函数(UDF)

自定义UDF函数,从hive保存到mongodb

[Hive]Hive自定义函数UDF