UDF可以将一个或者多个列作为输入,同时也可以返回一个或者多个列。在一般情况下,这些函数被注册为SparkSession或者Countext的临时函数。
注册成DataFrame的函数
案例:向UDF中注册一个3次幂函数的自定函数
函数:
def pow3(number:Double)={
number*number*number
}
注册:
def pow3(number:Double)={
number*number*number
}
上面的方法只能将pow3udf在DataFrame中使用,而不能在字符串表达式中使用。
Spark SQL函数
def pow3(number:Double)={
number*number*number
}