首页 > 代码库 > Hadoop_UDF示例

Hadoop_UDF示例

UDF:  一进一出

Eclipse端
  1. 继承UDF
  2. 实现evaluate方法(可重裁实现多个evaluate方法,以实现不同需求)
  3. 导出类jar包,注意指定main方法
Hive端
  1. 将jar包添加到Hive: add jar linux_path # 0.14版才开始支持
  2. 创建临时函数: create [temporary] function [if not exists] f_name classpath
     删除临时函数: drop [temporary] function [if exists] f_name 

简单示例,去除某一列双引号

package com.hive.udf;

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public class RMQuotes extends UDF{

  public Text evaluate(Text str){
	if(str != null){
	  return new Text(str.toString().replaceAll("\"", ""));
	}else return null;
  }
  public static void main(String[] args) {
	System.out.println(new RMQuotes().evaluate(new Text("\"hbhb\" \"GET /SSS/DDD/FFF?id=8 HTTP/1.1\"")));
  }
}

Hadoop_UDF示例