Scala Spark'的Can子类型;s UserDefinedAggregateFunction是单例函数吗?

Scala Spark'的Can子类型;s UserDefinedAggregateFunction是单例函数吗?,scala,apache-spark,apache-spark-sql,Scala,Apache Spark,Apache Spark Sql,Spark的UserDefinedAggregateFunction的子类型可以是单例对象还是必须是类并在使用时实例化?update、merge等调用都将MutableAggregationBuffer作为参数,因此我看不出不使用singleton的理由。 这样做正确/安全吗 例: 这对我们来说已经很好用了一段时间,所以Ramesh上面的评论似乎是正确的。这对我们来说已经很好用了一段时间,所以Ramesh上面的评论似乎是正确的。@Phillip M,是的,这是可能的,除非您在同一JVM上处理多个

Spark的
UserDefinedAggregateFunction
的子类型可以是单例对象还是必须是类并在使用时实例化?
update
merge
等调用都将
MutableAggregationBuffer
作为参数,因此我看不出不使用singleton的理由。 这样做正确/安全吗

例:


这对我们来说已经很好用了一段时间,所以Ramesh上面的评论似乎是正确的。

这对我们来说已经很好用了一段时间,所以Ramesh上面的评论似乎是正确的。

@Phillip M,是的,这是可能的,除非您在同一JVM上处理多个执行器。@Phillip M,是的,这是可能的,除非您在同一JVM上的多个执行器上进行处理。
object MyUdaf extends org.apache.spark.sql.expressions.UserDefinedAggregateFunction {
  // ...
}


someDf.groupBy("foo").agg(MyUdaf(col("bar")).as("bar_aggregated")).show()