用户自定义函数UDAF

这篇博客介绍了Hive中用户自定义聚合函数(UDAF)的创建与实现,包括两种实现方式:继承UDAF类和继承AbstractGenericUDAFResolver类。UDAF类虽然简单但性能较低,而AbstractGenericUDAFResolver提供了更好的性能和灵活性,是社区推荐的实现方式。文中通过具体的案例,展示了如何实现最大值计算的UDAF以及统计每个省份城市名字符串总长度的UDAF,详细阐述了开发流程和方法实现。
摘要由CSDN通过智能技术生成

SQL DDL:用户自定义函数UDAF

UDAF的创建与实现

Hive UDAF有两种实现方式,可以继承UDAF或者AbstractGenericUDAFResolver类,也可以实现GenericUDAFResolver2接口。
其中直接继承UDAF类,功能实现较为简单,但在运行时使用Hive反射机制,导致性能有损失。

在较新版本中org.apache.hadoop.hive.ql.exec.UDAF类已经废弃,但因为其实现方便,在很多开发者中较为流行。

通过AbstractGenericUDAFResolver和GenericUDAFResolver2实现UDAF,更加灵活,性能也更出色,是社区推荐的写法。

而AbstractGenericUDAFResolver是GenericUDAFResolver2接口的实现类,所以一般建议直接继承AbstractGenericUDAFResolver类进行UDAF的编写。

UDAF实现方式一:继承UDAF类

UDAF开发流程

继承UDAF类进行UDAF的开发流程是:

  1. 继承org.apache.hadoop.hive.ql.exec.UDAF类
  2. 以静态内部类方式实
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

桥路丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值