蜂巢常见自定义函数有哪些

介绍

这篇文章主要介绍了蜂巢常见自定义函数有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获、下面让小编带着大家一起了解一下。

<强> 1.1为什么需要自定义函数

蜂巢的内置函数满足不了所有的业务需求.hive提供很多的模块可以自定义功能,比如:自定义函数,serde,输入输出格式等。

<强> 1.2常见自定义函数有哪些

00001只;<强> UDF :用户自定义函数,用户定义函数。一对一的输入输出。(最常用的)。

00002只;<强> UDTF :用户自定义表生成函数.user table-generate函数定义。一对多的输入输出.lateral视图爆炸

00003只;<强> UDAF :用户自定义聚合函数.user聚合函数定义。多对一的输入输出计数和马克斯。

<强> 2自定义函数实现

<强> 2.1 UDF格式

先在工程下新建一个pom。xml,加入以下maven的依赖包 请查看code/pom.xml

定义UDF函数要注意下面几点:

00001. 继承org.apache.hadoop.hive.ql.exec.UDF

00002. 重写evaluate(),这个方法不是由接口定义的,因为它可接受的参数的个数,数据类型都是不确定的。Hive会检查UDF,看能否找到和函数调用相匹配的evaluate()方法

2.1.1 自定义函数第一个案例

public class FirstUDF extends UDF {

    public String evaluate(String str){

        String upper = null;

        //1、检查输入参数        if (StringUtils.isEmpty(str)){

        } else {

            upper = str.toUpperCase();

        }

        return upper;

    }

    //调试自定义函数    public static void main(String[] args){

        System.out.println(new firstUDF().evaluate("jiajingwen"));

    }}

2.2 函数加载方式

2.2.1 命令加载

这种加载只对本session有效

# 1、将编写的udf的jar包上传到服务器上,并且将jar包添加到hive的class path中

# 进入到hive客户端,执行下面命令

 add jar/hivedata/udf.jar

# 2,创建一个临时函数名,要跟上面蜂巢在同一个会话里面:

创建临时函数假发& # 39;com.qf.hive.FirstUDF& # 39;;

3,检查函数是否创建成功

显示功能;

4。测试功能

选择假发(& # 39;六边形abcdef # 39;);

5。删除函数

删除临时函数如果存在tolow;

<强> 2.2.2启动参数加载

(也是在本会话有效,临时函数)

1,将编写的udf的jar包上传到服务器上

2,创建配置文件

vi。/hive-init

添加jar/hivedata/udf.jar;

创建临时函数假发& # 39;com.qf.hive.FirstUDF& # 39;;

# 3,启动蜂巢的时候带上初始化文件:

,蜂巢我。/hive-init

,选择假发(& # 39;六边形abcdef # 39;)

<强> 2.2.3配置文件加载

通过配置文件方式这种只要用蜂巢命令行启动都会加载函数

1,将编写的udf的jar包上传到服务器上

2,在蜂巢的安装目录的本目录下创建一个配置文件,文件名:。hiverc

/bin/vi。null

蜂巢常见自定义函数有哪些