hive入门学习:UDF开发

                                   hive入门学习:UDF开发


         hive中提供了很多的内置函数,可以通过show functions来查看提供了哪些函数,可以desc  function extended 函数,来查看所对应的函数具体如何使用。但是有时候难免会有一些功能无法实现,就需要我们自己来实现啦,这个时候就用到了UDF开发。
       首先,开发UDF就是实现一个固定的接口,利通hadoop提供的那些变量例如intwritable,这些变量来编写java代码,添加到对应的路径下,供我们使用,下面,我们来看看如何实现一个UDF吧。
       第一步:编写java代码,注意,要继承UDF这个类,然后实现一个或者多个名称为evault函数,注意这个函数必须有返回值,null也可以,绝对不可是void,最好使用hadoop提供的数据变量,保持一致的序列化机制。假若实现一个自己的小写转换函数lowerUDF,可以这样实现:
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

/**
 * 1. Implement one or more methods named
 * "evaluate" which will be called by Hive. 
 * 
 * 2."evaluate" should never be a void method. However it can return "null" if
 * needed.
 *
 */
public class LowerUDF extends UDF{
	
	public Text evaluate(Text input){
		if(null == input){
			return null;
		}
		String inputValue = input.toString().trim() ;
		
		if(null == inputValue){
			return null ;
		}
		
		return new Text(inputValue.toLowerCase()) ;//实现小写的转换
	}

}

   第二部:把刚刚写好的代码打包,上传到hive/jars目录下,执行命令add jar  .../jars/hiveUdf.jar ; 把这个jar添加到classpath下面,如下所示:
                  

   第三步:创建临时函数用来使用:as后面的代表的是那个class所对应的主类名字。
create temporary function my_lower as '...hive.udf.LowerUDF';



    在这个时候show functions就会显示出来我们所创建的函数:

          那就用一下吧:
    

        上面我们就把大写函数转换成了小写。上面的就是最基本的UDF的编写。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值