Hive自定义函数UDF开发

Hive自定义函数UDF开发
Hive支持自定义函数,UDF是接受一行,输出一行。
函数通常是接受一行中某几个字段作为参数,然后返回一个值。
值得注意的是,hive的一个特别之处是数据类型很丰富,一个字段不仅仅可以是string,int,还可以是map,list。

其实最好的学习资料就是官方自带的examples了。
我这里用的是0.10版本hive,所以对于的examples在


我这里的例子的功能是,
接受两个字段,将第一个字段除以第二个字段返回。

package hive.udf;


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


public final class NormPt2 extends UDF 
{
	public double evaluate(final String p,final String v) 
	{
		if(p==null || v==null) return 0;
		int pt = Integer.parseInt(p);
		int vlen = Integer.parseInt(v);
		if(vlen ==0) return 0;
		double ratio = (double)pt/(double)vlen;
		return ratio>1.0?1.0:ratio;		
    }
}

写好后,用eclipse导出jar包。
右键该java文件,选择export,
选择导出jar包,勾选export all output folders for checked projects(如果有其她jar依赖,会一起导出)。
完成!

jar包导入到hive中,再使用函数。
add jar /jars/NormPt2.jar;
create temporary function norm_pt2 as 'hive.udf.NormPt2';
select norm_pt2(pt,vlen) from video;


本文链接:http://blog.csdn.net/lingerlanlan/article/details/41918941

本文作者:linger




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值