UDF介绍
spark的强大功能之一就是可以让用户自定义函数。用户自定义函数(UDF)让用户可以使用Scala或Python编写自己的自定义转换(Transformation)操作,甚至可以使用外部库。
UDF可以将一个或多个列作为输入,同时也可以返回一个或多个列。Spark的UDF允许使用多种不同的编程语言编写。这些函数只是描述了(一个接一个地)处理数据记录的方法。 默认情况下,这些函数被注册为SparkSession或者Context的临时函数。
编写UDF函数的步骤
第一步:设计一个实际的函数
这里用一个简单的函数来说明:设计一个power3
函数,该函数接受一个数字并返回它的三次幂。
// 先创建一个DF
val udfExampleDF = spark.range(5).toDF("num")
// 第一步:设计一个实际的函数
// 注意:这个自定义函数有指定接受参数类型,和返回类型
def power3(number:Double): Double = number * number * number
可以对此函数进行测试,可以看到函数按预期的那样执行。