用户自定义函数UDAF

2021-09-10 11:13:27 浏览数 (1)

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. 以静态内部类方式实现org.apache.hadoop.hive.ql.exec.UDAFEvaluator接口
  3. 实现接口中的init、iterate、terminatePartial、merge、terminate方法

其中UDAFEvaluator接口中的方法具体描述为:

0 人点赞