Hive 用户自定义函数UDF详解

本例自定义一个Hive UDF函数,功能是将从Hive数据仓库查询出来的字符串进行大小写转换。

第一步,创建java工程,添加jar包。

Ø导入Hivelib目录下的jar包以及hadoop安装目录下的hadoop-core.jar

第二步,新建package包,包中新建java类,该类一定要继承org.apache.hadoop.hive.ql.exec.UDF类。

第三步,在继承了UDF类中实现evaluate函数,函数名必须是evaluate,可以重载多个evaluate方法。

如下图,evaluate函数第一个参数t对应着从数据库查询出来的某列的数据,第二个参数up_or_lower是依据函数的逻辑让用户在调用时指定的。

第四步,export  jar包,直接从eclipse工具中导出jar包,这步简单。

第五步,将jar包添加到linux操作系统下的文件系统中(我是在windows7中用eclipse创建java工程和导出jar包的,所以我使用了winscp工具(点击下载)从windows文件系统将jar包传送到linux文件系统,如果本身就是在linux系统下编写的java工程,就用不着这一步了)。

第六步,添加jar包到hive环境中。(三种方式,文末细讲)

第七部,创建临时函数供用户调用。

第八步,在查询语句中调用UDF函数。(六、七、八步如下图)

这里要注意的是如果是通过hive命令添加jar包到hive环境中,当要更新这个jar包时,要退出hive环境,再重新添加jar包。

附:向hive环境添加jar包的三种方法。(这部分转发自:http://www.linuxidc.com/Linux/2013-04/82879.htm

1.  使用add jar path/test.jar;方法加入

该方法的缺点是每次启动Hive的时候都要从新加入,退出hive就会失效。

2.  通过设置hive的配置文件hive-site.xml 加入

在配置文件中增加配置

<property>
<name>hive.aux.jars.path</name>
<value>file:///jarpath/all_new1.jar,file:///jarpath/all_new2.jar</value>
</property>

保存即可。

该方法比第一种方法方便很多。不需要每次启动Hive执行命令加入,只是配置稍微复杂一些。

3.  在${HIVE_HOME中创建文件夹auxlib  ,然后将自定义jar文件放入该文件夹中。

个人推荐这种方法,方便快捷。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小手追梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值