Hive 创建自定义函数(UDF)

当Hive中的内置函数不满足我们需求的时候,我们可以自定义我们自己的Hive函数,来满足我们的需求。

下面介绍一下Hive创建自定义函数的过程。

需要创建一个类继承UDF,重写方法evaluate

package com.example.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;
public final class Lower extends UDF {
 public Text evaluate(final Text s) {
 if (s == null) { return null; }
 return new Text(s.toString().toLowerCase());
 }
}

编译代码为一个jar,然后将这个jar添加到Hive的classpath中

--添加jar
hive> add jar /tmp/my_jar.jar;
--查看该Hive会话中添加的jar
hive> list jars;

从Hive0.13开始,我们也可以在创建函数的时候,直接指定jar的位置

hive> CREATE FUNCTION myfunc AS 'myclass' USING JAR 'hdfs:///path/to/jar';

在Hive中注册你的函数

create temporary function my_lower as'com.example.hive.udf.Lower';

使用自定义函数

select my_lower(title), sum(freq) from titles group by my_lower(title);

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

day64_SpringMVC学习笔记_02

注意:springmvc本身就支持xml格式,所以不用导入其他支持的jar包了。

10710
来自专栏hanlp学习笔记

中文分词语言处理HanPL配置,以及在eclipse中安装使用方式

HanLP由3部分组成:类库hanlp.jar包、模型data包、配置文件hanlp.properties,请前往项目主页下载最新版:https://githu...

13110
来自专栏dalaoyang

Linux生成私钥和公钥免密连接

有时需要从服务器A免密连接到服务器B,这时需要在服务器A生成私钥和公钥,大致过程其实就2步。

39210
来自专栏Java帮帮-微信公众号-技术文章全总结

Hessian体验与分析【面试+工作】

Hessian是一个轻量级的remoting onhttp工具,使用简单的方法提供了RMI的功能;相比WebService,Hessian更简单、快捷。

14120
来自专栏Java技术分享圈

Java操作Excel文件导入导出【内含有 jxl.jar 】

jxl.jar包:链接:https://pan.baidu.com/s/1zCIKvFoFauUp_5UAh0t_4w 密码:8mpy

30330
来自专栏Java帮帮-微信公众号-技术文章全总结

JMS实现参数的集中式管理【面试+工作】

JMS的发布订阅机制也能实现类似的功能,集群节点通过订阅指定的节点,同时使用jms对消息的过滤器功能,实现对指定参数的更新,本文将介绍通过JMS实现简单的参数集...

13730
来自专栏游戏杂谈

JNI开发示例

安装:eclipse(http://www.eclipse.org/)、CDT(C/C++ Development Tooling)、ADT(Android D...

19420
来自专栏ios 技术积累

Maven 初识

才接触Maven的时候也是一头雾水,网上搜索了一些资料后感觉Maven和iOS开发中的cocoapods很像,cocoapods自动下载我们需要的开源类不需要手...

18330
来自专栏深度学习与数据挖掘实战

【今日热门】优秀资源

12220
来自专栏编舟记

架构整洁之道导读(二)

我是《架构整洁之道》(Clean Architecture) 中文版的技术审校者,在审校的过程当中略有感悟,所以希望通过撰写导读的方式分享给大家。

16720

扫码关注云+社区

领取腾讯云代金券

年度创作总结 领取年终奖励