Spark UserDefinedAggregateFunction
的子类型可以是单身/ object
还是必须是class
并在使用时实例化? update
,merge
等调用都将MutableAggregationBuffer
作为参数,因此我看不出不使用单例的原因。
这样做是否正确/安全?
例如:
object MyUdaf extends org.apache.spark.sql.expressions.UserDefinedAggregateFunction {
// ...
}
someDf.groupBy("foo").agg(MyUdaf(col("bar")).as("bar_aggregated")).show()
答案 0 :(得分:0)
这对我们来说已经有一段时间了,所以Ramesh上面的评论似乎是正确的。