hive入门学习:UDF开发
2016-02-16 20:54
316 查看
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的编写。
相关文章推荐
- 首页焦点图myFocus插件
- [Unity2d系列教程] 003.Unity如何调用android的方法
- 使用fsck修复文件系统错误
- Java基础01 从HelloWorld到面向对象
- Iaas-Paas-Saas
- linux配置nfs步骤及心得
- GitLab 之 Linux十分钟快装
- GitLab 之 Linux十分钟快装
- GitLab 之 Linux十分钟快装
- 1107. Social Clusters (30)
- linux 创建连接命令 ln -s 软链接
- 递归
- bind
- Android开发学习之路--Camera之初体验
- Android开发学习之路--Camera之初体验
- Win7 64位 VS2015环境编译Libpng
- C语言程序设计-第7章 用函数实现模块化程序设计
- 【LightOJ 1422】Halloween Costumes(区间DP)
- Linux 中C语言 字符串与整数之间的转换
- Rails 控制器