创建存储对象的类

创建对象

UDAF需要调用到的方法:
init HIVE会调用此方法来初始实例化一个UDAF evaluator类

iterate 将一行新的数据载入到聚合buffer中(对数据进行初始化处理)

terminatePartial 以一种可持续化的方法返回当前聚合内容。(返回值只可以使用Java基本型数据和array,以及基本封装类型(例如Double),Hadoop中Writeable类、list和map类型。不能使用用户自定义类(即使实现了Java.io.serializable))我觉得是map的中间键a#b#c

merge 将terminatePartial返回的中间部分聚合结果合并到当前聚合中

terminate 返回最终聚合结果给hive(reduce)

UDAF的运行过程
