PySpark Builder Class vs builder method


from pyspark.sql import SparkSession
spark = SparkSession.builder.master("local[4]").appName("read-file-fit-model").getOrCreate()

上面的代码片段仅在我使用 SparkSession 中的属性时有效builder

当我执行以下操作时:

spark = SparkSession.Builder.master("local[4]").appName("read-file-fit-model").getOrCreate() 

它给出一个错误。

TypeError: master() missing 1 required positional argument: 'master'

当我使用BuilderAPI 时,例如初始化Builder类的实例,它工作正常:

spark_sess = SparkSession.Builder()
spark_sess.master("local[4]").appName("read-file-fit-model").getOrCreate()

我的问题是:

两种实现之间是否存在差异,是否应该首选一种实现?

这两种实现彼此相同。

如果您查看源代码,您会发现builder属性初始化了Builder()类。

从源代码来看,

builder = Builder()
"""A class attribute having a :class:`Builder` to construct :class:`SparkSession` instances"""

因此,使用、SparkSession.builderSparkSession.Builder()最终意味着同样的事情。

最新更新