apache-spark - 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
但如果明确表示,这种意外行为仍然会发生。
解决方案
推荐阅读
- angular - 如何在子组件中使用 formGroupName
- python - 如何在嵌套的numpy数组中用一行“NaN”替换带有浮点值的行?
- c++ - 在 C++ 多态中,如何避免函数的名称隐藏(调用错误没有匹配的函数)?
- laravel - 在 laravel 中进行测试的模拟卷曲响应
- generics - 如何将类型传递给 Kotlin 中的泛型方法?
- c++ - 如何从 Boost 库中理解这段 C++ 代码?
- android - 未从另一个意图过滤器调用“onCreate()”方法
- linux - Curl 以 ASCII 格式下载 tar.gz 文件
- javascript - 在 findOneAndUpdate Mongoose 5.x 之后从数组中检索特定记录
- pandas - Pandas 按排名的条件累积总和