相比于UDF,GenericUDF有两个优势
可以接受复杂的参数类型,返回复杂类型
可以接受变长参数个数(参数数组)
extends UDF
UDF类型的编写相对比较简单,父类源码github位置,简易示例如下...是多个部分合并时调用的,得到了参与合并的最大值.
terminate 是最终Reduce合并时调用的,得到最大值....UDAF方法
init(Mode m, ObjectInspector[] parameters): 这个是非必须的,但是一般是需要的.实例化Evaluator类的时候调用的,在不同的阶段需要返回不同的...ObjectInspector 用于terminate方法的返回值....其入参和返回值,以及Mode阶段的关系如下表:
mode 入参 返回值的使用者
PARTIAL1 原始数据 terminatePartial
PARTIAL2 部分聚合数据 terminatePartial