UDAFとは何ですか?
UDAF(ユーザー定義集計関数)はユーザー定義の集計関数です。集計関数と通常の関数の違いは何ですか?通常の関数は入力行を受け入れて出力を生成し、集計関数は(のセットを受け入れます通常は複数行の入力)を生成してから出力を生成します。つまり、値のセットを集計する方法を見つけます。合計操作と同様に、sparkudfの使用についてはここを参照してください
以下のデモを直接見て、1〜10の平均値を計算してください。コードは比較的単純です。
package spark
import org.apache.spark.sql.expressions.{MutableAggregationBuffer, UserDefinedAggregateFunction}
import org.apache.spark.sql.types.{DataType, IntegerType, StructField, StructType}
import org.apache.spark.sql.{Dataset, Row, SparkSession}
import java.lang
/**
* spark的UDAF使用
*/
object UDAF {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder()
.appName("UDAFDemo")
.master("local[1]")
.getOrCreate()
val ds: Dataset[lang.Long] = spark.range(1,10)
ds.createTempView("test")
spark.udf.re