概述
在Hive中,用户可以自定义一些函数,用于扩展HiveQL的功能,这类函数分为三大类:
UDF(User-Defined-Function)
特点:一进一出;
继承UDF类(org.apache.hadoop.hive.ql.exec.UDF...UDAF(User-Defined Aggregation Function)
UDAF 是 Hive 中用户自定义的聚合函数,内置的 UDAF 有 max() 等....,但是一般是需要的.实例化Evaluator类的时候调用的,在不同的阶段需要返回不同的OI.需要注意的是,在不同的模式下parameters的含义是不同的,比如m为 PARTIAL1 和 COMPLETE....因为调用这个方法时,说明已经是map或者combine的结束了,必须将数据持久化以后交给reduce进行处理.只支持JAVA原始数据类型及其封装类型、HADOOP Writable类型、List、Map...,不能返回自定义的类,即使实现了Serializable也不行,否则会出现问题或者错误的结果.
merge(AggregationBuffer agg, Object partial):将terminatePartial