相比于UDF,GenericUDF有两个优势
可以接受复杂的参数类型,返回复杂类型
可以接受变长参数个数(参数数组)
extends UDF
UDF类型的编写相对比较简单,父类源码github位置,简易示例如下...检查传入的参数个数与每个参数的数据类型是正确的;
保存 converters (ObjectInspector) 用以供 evaluate() 使用;
返回 ListObjectInspector,让...在Hive源码包org.apache.hadoop.hive.contrib.udaf.example中包含几个示例, 但是这些接口已经被注解为Deprecated,建议不要使用这种方式开发新的UDAF...但是一般是需要的.实例化Evaluator类的时候调用的,在不同的阶段需要返回不同的OI.需要注意的是,在不同的模式下parameters的含义是不同的,比如m为 PARTIAL1 和 COMPLETE...,即使实现了Serializable也不行,否则会出现问题或者错误的结果.
merge(AggregationBuffer agg, Object partial):将terminatePartial返回的部分聚合数据进行合并