Hive高级(自定义)函数

当Hive内置函数无法满足复杂统计需求时,可以通过创建自定义函数来扩展功能。本文详细介绍了UDF、UDAF和UDTF的使用,包括它们的编写、添加到Hive及实际应用。同时,讲解了Lateral View的用法,如何配合UDTF进行数据转换,以解决多对一和一对多的数据处理问题。
摘要由CSDN通过智能技术生成

介绍

Hive内置了一些常用的函数,比如sum、count等。如果这些内置函数满足不了统计业务逻辑时,用户可以添加自定义函数,实现复杂业务的统计计算。
官方网址内置函数
官方网址自定义函数
从功能上划分,自定义函数包含三类:
UDF(User Defined Function):一对一模式,一条数据进,一条数据出。官网UDF
UDAF(User-Defined Aggregation Functions):多对一模式,多条数据进,一条数据出。官网UDAF
UDTF(User Defined Table Generating Function):一对多模式,一条进,多条出。官网UDTF

如何使用自定义函数

1、在自己项目中引入hive依赖,根据业务需要继承不同的基类。
UDF需要继承UDF基类,并实现evaluate()方法
UDAF需要实现AbstractGenericUDAFResolver2和GenericUDAFEvaluator接口
UDTF需要继承GenericUDTF
2、编译打jar包,添加到hive中

add jar my_jar.jar;

3、创建自定义函数

CREATE FUNCTION my_lower AS 'com.test.udf.myclass'

4、使用函数
select my_lower(name)

UDF编写

import org.apache.hadoop.hive.ql.exec.UDF;
import org.apache.hadoop.io.Text;

public class MyUDF extends UDF {
   
    public Text evaluate(final Text s) {
   
        if (s == null) {
    return null; }
        return new Text(s.toString().toLowerCase());
    }
}

UDAF

import org.apache.hadoop.hive.ql
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值