如何实现非代数UDAF?

时间:2017-11-22 09:34:04

标签: scala apache-spark spark-dataframe apache-spark-dataset

由于在实现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

在这种情况下?

0 个答案:

没有答案
相关问题