首页 > 解决方案 > spark.python.worker.reuse 没有按预期工作

问题描述

给定这个代码块

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 进程 ID 将被打印两次。相反,正在打印完全不同的 Python 进程 ID。

spark.python.worker.reuse是真的,但默认。spark.python.worker.reuse=true但如果明确表示,这种意外行为仍然会发生。

标签: apache-sparkpyspark

解决方案


推荐阅读