с учетом этого блока кода
def return_pid(_): yield os.getpid()
spark = SparkSession.builder.getOrCreate()
pids = set(spark.sparkContext.range(32).mapPartitions(return_pid).collect())
print(pids)
pids = set(spark.sparkContext.range(32).mapPartitions(return_pid).collect())
print(pids)
Я ожидал, что одни и те же идентификаторы процессов Python будут напечатаны дважды. вместо этого печатаются совершенно другие идентификаторы процессов Python.
spark.python.worker.reuse
верно, но по умолчанию. но это неожиданное поведение все еще происходит, если spark.python.worker.reuse=true
явно.