如何在pyspark中使用udf函数

如何在pyspark中使用udf函数,pyspark,user-defined-functions,Pyspark,User Defined Functions,我正在分析以下代码: 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以前没有在代码的任何地方定义?当您需要

我正在分析以下代码:

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
以前没有在代码的任何地方定义?

当您需要定义特定于您的用例的逻辑以及当您需要封装该解决方案以供重用时,用户定义函数(udf)非常有用。只有在没有明确的方法使用内置函数完成任务时,才应使用它们。.Azure DataBricks

创建您的函数(确保没有内置函数来执行类似任务后)

然后,您需要通过指定以下内容将函数注册为UDF:

Python中的访问名(myGreatingUDF)

函数本身(greatingFunc)

函数的返回类型(StringType)

现在你可以随时调用UDF

guest = 'John'
print(myGreatingUDF(guest))

您从pyspark.sql导入了它:
。函数导入udf
@mck但它是什么,它做什么?我在不同的背景下见过它,没有一个文档对我来说足够清晰
myGreatingUDF = spark.udf.register("myGreatingUDF",greatingFunc,StringType())
guest = 'John'
print(myGreatingUDF(guest))