美文网首页
Hive开发自定义函数UDF

Hive开发自定义函数UDF

作者: geekAppke | 来源:发表于2018-11-30 10:43 被阅读14次

Hive 内置函数

Date Functions
Conditional Functions
Misc. Functions

Hive自定义函数

  • UDF(User-Defined-Function) 一进一出
  • UDAF(User- Defined Aggregation Funcation) 聚集函数,多进一出。Count/max/min
  • UDTF(User-Defined Table-Generating Functions) 一进多出,如explode()
    使用方式 :在HIVE会话中add 自定义函数的jar文件,然后创建function继而使用函数

UDF 开发

  1. UDF函数可以直接应用于select语句,对查询结构做格式化处理后,再输出内容
  2. 编写UDF函要注意以下几点:
    a. 自定义UDF需要继承org.apache.hadoop.hive.ql.exec.UDF
    b. 需要实现evaluate函数,evaluate函数支持重载
  3. 步骤
    a. 把程序打包放到目标机器上去;
    b. 进入hive客户端,添加jar包:hive> add jar /run/jar/udf_test.jar;
    c. 创建临时函数:hive> CREATE TEMPORARY FUNCTION add_example AS 'hive.udf.Add';
    d. 销毁临时函数:hive> DROP TEMPORARY FUNCTION add_example;
    e. 查询HQL语句:
SELECT add_example(8, 9) FROM scores;
SELECT add_example(scores.math, scores.art) FROM scores;
SELECT add_example(6, 7, 8, 6.8) FROM scores;

Hive的UDF开发只需要重构UDF类的evaluate函数即可

package com.hrj.hive.udf;
import org.apache.hadoop.hive.ql.exec.UDF;
public class helloUDF extends UDF {
    public String evaluate(String str) {
        try {
            return "HelloWorld " + str;
        } catch (Exception e) {
            return null;
        }
    }
} 

Hive 自定义函数调用

将该java文件编译成helloudf.jar
hive> add jar helloudf.jar;
hive> create temporary function helloworld as 'com.hrj.hive.udf.helloUDF';
hive> select helloworld(t.col1) from t limit 10;
hive> drop temporary function helloworld;

1.helloworld为临时的函数,所以每次进入hive都需要add jar以及create temporary操作
2.UDF只能实现一进一出的操作,如果需要实现多进一出,则需要实现UDAF

Hive复合数据类型 Hive操作复合类型

相关文章

  • Hive从入门到精通8:Hive自定义函数(UDF)

    1.什么是Hive UDF? Hive中的用户自定义函数(即User Defined Function,简称UDF...

  • Hive- UDF&GenericUDF

    hive udf简介 在Hive中,用户可以自定义一些函数,用于扩展HiveQL的功能,而这类函数叫做UDF(用户...

  • 【Hive】Hive UDF

    [TOC] 一、UDF 介绍 UDF(User-Defined Functions)即是用户自定义的hive函数。...

  • Hive 用户自定义函数 UDF,UDAF

    Hive有UDF:(普通)UDF,用户自定义聚合函数(UDAF)以及用户自定义生表函数(UDTF)。它们所接受的输...

  • Hive的UDF编程-GenericUDF编程

    UDF简介 在Hive中,用户可以自定义一些函数,用于扩展HiveQL的功能,而这类函数叫做UDF(用户自定义函数...

  • Hive开发自定义函数UDF

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

  • 学习中的关键的问题

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

  • hive自定义函数和transform

    hive自定义函数(udf:user-defined function) 例1:对于以下数据 1、开发一个java...

  • Hive 自定义函数 UDF

    Hive 自定义函数 UDF UDF:用户定义(普通)函数,只对单行数值产生作用; UDF只能实现一进一出的操作。

  • hive积累大全

    此篇内容:hive自定义函数UDF、UDTF,压缩存储方式,hive优化、hive实际编程SQL中的if表达式用法...

网友评论

      本文标题:Hive开发自定义函数UDF

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