美文网首页
Hive实现自定义函数(临时函数和永久函数)

Hive实现自定义函数(临时函数和永久函数)

作者: Yobhel | 来源:发表于2020-06-16 15:23 被阅读0次

关于HIVE实现自定义函数,步骤主要可分为:

  • 继承org.apache.hadoop.hive.ql.exec.UDF
  • 重写evaluate()方法
  • 打包jar
  • 添加jar包
  • 使用自定义函数

下面是具体实现,包括自定义临时函数和自定义永久函数

编写自定义函数

public class AddPrefix extends UDF {
    /**
     * 这里我们实现将任一输入添加自定义前缀信息
     */
    public String evaluate(String str) {
        return "HIVE UDF Prefix:"+ str;
    }
} 

打包jar,进入HIVE客户端,引入相关jar包

  • 这里以自定义临时函数为例
--添加jar包
hive> add jar /usr/wh/addPrefix.jar;
--创建自定义临时函数
hive> create temporary function add_prefix as 'com.test.AddPrefix';
--使用自定义临时函数
hive> select add_prefix('aa');
HIVE UDF Prefix:aa
hive> select add_prefix(1);
HIVE UDF Prefix:1
--这里我们切换数据库依然可以正常使用。为了便于观察,我们打开数据库显示。
hive> set hive.cli.print.current.db=true;
hive (test)> select add_prefix('aa');
HIVE UDF Prefix:aa
hive (test)> use tmp;
hive (tmp)> select add_prefix('aa');
HIVE UDF Prefix:aa
--销毁自定义临时函数
hive (test)> drop temporary function add_prefix;
--需要注意的是,一旦退出HIVE客户端,自定义临时函数即被销毁。
  • 如果需要使用自定义永久函数,可以先上传到HDFS。
[root@nd2 wh]# hadoop fs -put addPrefix.jar /wh/test/
[root@nd2 wh]# hadoop fs -ls /wh/test
Found 1 items
-rw-r--r--   3 root supergroup        699 2019-05-22 14:03 /wh/test/addPrefix.jar
  • 下面是简单使用
--创建永久函数
create function add_prefix
as 'com.test.AddPrefix'
using jar 'hdfs:///wh/test/addPrefix.jar'
--与自定义临时函数不同,使用永久函数只能在当前数据库
--这里我们放在test库,如果在其它库执行,会报错
hive (test)> select add_prefix('aa');
HIVE UDF Prefix:aa
hive> use tmp;
hive (tmp)> select add_prefix('aa');
FAILED: SemanticException [Error 10011]: Invalid function add_prefix
--销毁自定义永久函数
hive (test)> drop function add_prefix;

相关文章

  • Hive实现自定义函数(临时函数和永久函数)

    关于HIVE实现自定义函数,步骤主要可分为: 继承org.apache.hadoop.hive.ql.exec.U...

  • Hive自定义UDF UDAF UDTF

    hive允许用户使用自定义函数解决hive 自带函数无法处理的逻辑。hive自定义函数只在当前线程内临时有效,可以...

  • flink modules详解之使用hive函数

    modules概念 通过hive module使用hive函数内置函数自定义函数 sql 客户端的使用 原理分析和...

  • Hive函数

    hive中的函数从大体上可以分为两类:hive内置函数和用户自定义函数 hive内置函数又可以根据输入输出细分为以...

  • Hive的UDF函数

    【前言】常见的数据库都有函数,hive自身也有函数。分为内置函数和自定义的UDF函数,自定义函数例如(sum 、c...

  • HIVE UDTF 自定义函数

    HIVE UDTF 自定义函数 关键词:HIVE UDTF 开发 实例Hive运行用户自定义函数对数据信息处理,...

  • 学习中的关键的问题

    hive中的topn操作需要使用到hive的窗口函数执行操作的。 spark的udf可以实现自定义的udf的函数的...

  • Hive自定义函数-UDF

    虽然Hive提供了很多函数,但是在实际工作还是需要根据工作的业务需求实现自己的自定义函数,这就是自定义函数(UDF...

  • Hive开发自定义函数UDF

    Hive 内置函数 Hive自定义函数 UDF(User-Defined-Function) 一进一出 UDAF(...

  • Hive之自定义函数

    自定义函数是什么 当hive内置函数无法满足业务需求的时候,可以通过编写用户自定义函数来使用。1、按照定义函数方式...

网友评论

      本文标题:Hive实现自定义函数(临时函数和永久函数)

      本文链接:https://www.haomeiwen.com/subject/guhrxktx.html