В документации Spark описывается, как создать обе нетипизированная пользовательская агрегатная функция (code) (он же udaf) и агрегатор со строгой типизацией (код) (он же подкласс org.apache.spark.sql.expressions.Aggregator
).
Я знаю, что вы можете зарегистрировать udaf для использования в sql через spark.udf.register("udafName", udafInstance)
, а затем использовать его как spark.sql("SELECT udafName(V) as aggV FROM data")
.
Есть ли способ использовать агрегатор и в sql?