我正在分析以下代码:
from pyspark.sql.functions import udf,col, desc
def error(value, pred):
return abs(value - pred)
udf_MAE = udf(lambda value, pred: MAE(value= value, pred = pred), FloatType())我知道udf是一个用户定义的函数,但我不明白这意味着什么?因为udf之前没有在代码中定义任何位置?
发布于 2020-12-25 12:18:34
当您需要定义特定于您的用例的逻辑时,以及当您需要封装该解决方案以便重用时,用户定义函数(UDF)非常有用。只有在没有明确的方法使用内置的functions..Azure DataBricks来完成任务时,才应该使用它们。
创建您的函数(确保没有内置的函数来执行类似的任务)
def greatingFunc(name):
return 'hello {name}!'然后,您需要通过指定以下内容将您的函数注册为UDF:
Python中访问的名称(myGreatingUDF)
函数本身(greatingFunc)
函数的返回类型(StringType)
myGreatingUDF = spark.udf.register("myGreatingUDF",greatingFunc,StringType())现在你可以随时叫你UDF,
guest = 'John'
print(myGreatingUDF(guest))https://stackoverflow.com/questions/65427964
复制相似问题