什么是UDAF?就是输入N行得到一个结果,属于聚合类的。
接下来我们就写一个求几何平均数的一个自定义聚合函数的例子
我们从开头写起,先来看看需要进行计算的数如何产生:
package com.test.SparkSQL
import java.lang
import org.apache.spark.sql.{Dataset, SparkSession}
object UDAFDemo {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("UDAFDemo")
.master("local[*]")
.getOrCreate()
val ds: Dataset[lang.Long] = spark.range(1,10)
ds.show()
}
}
生成结果: