由于在实现merge
时需要org.apache.spark.sql.expressions.UserDefinedAggregateFunction
方法,如何实现不支持merge
的聚合函数,例如,何时实现median
?
示例1:
计算一组数据的中位数:
7 5 3 2 4 5 4 7
输出应为(2,4)。如果单独计算 7 5 3 和 2 4 5 4 7 的中位数,而 7 5 3 的中位数为5,则 2 4 5 4 7 的中位数是5,没有办法合并它们。那么如何覆盖merge
函数:
def merge(buffer1: MutableAggregationBuffer, buffer2: Row): Unit
在这种情况下?