package sparksql.day01
import org.apache.log4j.{Level, Logger}
import org.apache.spark.SparkConf
import org.apache.spark.sql.{SparkSession, functions}
import org.apache.spark.sql.expressions.Aggregator
object sparkUDAF1 {
def main(args: Array[String]): Unit = {
Logger.getLogger("org").setLevel(Level.ERROR)
System.setProperty("hadoop.home.dir", "D:\\spark")
val conf = new SparkConf().setAppName("spakrsql").setMaster("local[*]")
val spark = SparkSession.builder().config(conf).getOrCreate()
val df = spark.read.json("data/user.json")
//df.show()
df.createOrReplaceTempView("user")
spark.udf.register("ageavg",functions.udaf( new MyAgeAVGUDAF()))
spark.sql("select ageavg(age) from user").show()
// spark.sql("select avg(age) from user").show()
spark.stop()
}
// 自定义聚合函数类:计算年龄的平均值
//继承来自Aggregator
//
//重写方法ctrl+
sparkSQL 自定义UDAF函数(强类型的方式)spark3.x
最新推荐文章于 2023-03-25 17:13:19 发布
本文将深入探讨如何在SparkSQL 3.x中使用强类型方式定义用户自定义聚合函数(UDAF)。我们将涵盖必要的步骤和示例,帮助你理解如何扩展Spark的功能来满足特定的聚合需求。
摘要由CSDN通过智能技术生成