前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hive 创建自定义函数(UDF)

Hive 创建自定义函数(UDF)

原创
作者头像
ZHANGHAO
修改2018-12-20 20:48:49
3.1K0
修改2018-12-20 20:48:49
举报
文章被收录于专栏:张浩的专栏张浩的专栏

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

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

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

代码语言:javascript
复制
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中

代码语言:javascript
复制
--添加jar
hive> add jar /tmp/my_jar.jar;
--查看该Hive会话中添加的jar
hive> list jars;

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

代码语言:javascript
复制
hive> CREATE FUNCTION myfunc AS 'myclass' USING JAR 'hdfs:///path/to/jar';

在Hive中注册你的函数

代码语言:javascript
复制
create temporary function my_lower as'com.example.hive.udf.Lower';

使用自定义函数

代码语言:javascript
复制
select my_lower(title), sum(freq) from titles group by my_lower(title);

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

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

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 需要创建一个类继承UDF,重写方法evaluate
  • 编译代码为一个jar,然后将这个jar添加到Hive的classpath中
  • 从Hive0.13开始,我们也可以在创建函数的时候,直接指定jar的位置
  • 在Hive中注册你的函数
  • 使用自定义函数
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档