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'
当我使用Builder
API 时,例如初始化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.builder
或SparkSession.Builder()
最终意味着同样的事情。