英文:
What is the difference between pyspark.sql.udf and pyspark.sql.functions.udf?
问题
我可以用两种方式导入UDF:
pyspark.sql.udf
和
pyspark.sql.functions.udf
我可以使用这两种方式来在数据框上定义UDF。它们之间有什么区别,以及在什么情况下更倾向于使用其中一种?
英文:
I can import udf in two ways:
pyspark.sql.udf
and
pyspark.sql.functions.udf
I can use both to define udfs on a dataframe. What is the difference between the two and when to prefer one over the other?
答案1
得分: 1
我在pyspark2.4.0中进行了研究。
以下是两者的源代码链接:
这是一个包装器函数(也称为装饰器)。它有很多文档和对_create_udf
内部方法的一些代码包装。
这是您想要使用的内容来创建用户定义函数(UDF)。
然后,我们有pyspark.sql.udf。
这是一个Python模块(一个完整的文件),除了3个register
函数外,它没有文档,并且似乎不适用于直接使用。
_create_udf
在此处定义,以及UserDefinedFunction
类。它似乎只是创建UDF类内部的文件。
希望这有所帮助,我将乐意在评论中回答任何额外的问题。
英文:
I did my research in pyspark2.4.0.
Here is the source code for both:
This is a wrapper function (also called decorator). It has a lot of documentation and a bit of code wrapping of the _create_udf
internal method.
This is what you want to use to create User Defined Functions.
Then we have pyspark.sql.udf.
This is a python module (a whole file) and apart from the 3 register
functions, it has no documentation and does not seem to be for direct use.
The _create_udf
is defined here, as well as the UserDefinedFunction
class. It just seems to be the file where the internals of the UDF class are created.
Hope this helped, I'd be happy to answer any additional questions in the comments.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论