Spark(python)——解释用户定义函数和简单函数的区别

Posted

技术标签:

【中文标题】Spark(python)——解释用户定义函数和简单函数的区别【英文标题】:Spark (python) - explain the difference between user defined functions and simple functions 【发布时间】:2017-11-30 19:06:07 【问题描述】:

我是 Spark 初学者。我正在使用 Python 和 Spark 数据框。我刚刚了解了用户定义函数 (udf),必须先注册才能使用它。 问题:在什么情况下你想创建一个 udf 而不是一个简单的 (Python) 函数?

非常感谢!

【问题讨论】:

【参考方案1】:

如果你使用 UDF,你的代码会更简洁,因为它会接受一个函数和正确的返回类型(如果为空,则默认为字符串),并创建一个列表达式,这意味着你可以编写一些不错的东西,例如:

my_function_udf = udf(my_function, DoubleType())
myDf.withColumn("function_output_column", my_function_udf("some_input_column"))

这只是如何使用 UDF 将函数视为列的一个示例。它们还可以很容易地通过闭包将列表或映射之类的东西引入你的函数逻辑,这解释得很好here

【讨论】:

以上是关于Spark(python)——解释用户定义函数和简单函数的区别的主要内容,如果未能解决你的问题,请参考以下文章

Spark/Scala - 无法执行用户定义的函数

详解Spark sql用户自定义函数:UDF与UDAF

在Apache Spark中使用UDF

使用用户定义的函数在 spark 中加入数据集时需要填充其他信息

org.apache.spark.SparkException:无法执行用户定义的函数

用户定义的聚合函数 Spark Java - 合并问题