pyspark.sql.udf 和 pyspark.sql.functions.udf 之间的区别是什么?

huangapple go评论51阅读模式
英文:

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中进行了研究。

以下是两者的源代码链接:

pyspark.sql.functions.udf

这是一个包装器函数(也称为装饰器)。它有很多文档和对_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:

pyspark.sql.functions.udf

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.

huangapple
  • 本文由 发表于 2023年6月9日 04:55:09
  • 转载请务必保留本文链接:https://go.coder-hub.com/76435631.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定