用户定义函数(User-defined functions, UDFs)是大多数 SQL 环境的关键特性,用于扩展系统的内置功能。UDF 允许开发人员通过抽象其低级语言实现来在更高级语言(如 SQL)中启用新功能。
一、Spark SQL 中 UDF 用法
object SparkSqlUDF {
def main(args: Array[String]): Unit = {
val spark = SparkSession.builder().master("local").appName("SparkSqlUDF").getOrCreate()
// ------------------------- 先创建测试 DataFrame ------------------------- //
// 构造测试数据,有两个字段、名字和年龄
val userData = Array(("A", 16), ("B", 21), ("B", 14), ("B", 18))
// 创建测试df
val userDF = spark.createDataFrame(userData).toDF("name", "age")
userDF.show
// 注册一张user表
userDF.createOrReplaceTempView("user")
// ------------------------- 通过匿名函数注册UDF ------------------------- //
spark.udf.register("strLen", (str: String) =>