一尘不染

Apache Spark如何处理python多线程问题?

python

根据python的GIL,我们不能在CPU绑定的进程中使用线程,所以我的问题是Apache
Spark如何在多核环境中利用python?


阅读 194

收藏
2021-01-20

共1个答案

一尘不染

多线程python问题与Apache Spark内部结构分开。Spark上的并行性在JVM内部处理。

在此处输入图片说明

原因是在Python驱动程序中,SparkContext使用Py4J启动JVM并创建JavaSparkContext。

Py4J仅在驱动程序上用于Python和Java SparkContext对象之间的本地通信。大数据传输是通过不同的机制执行的。

Python中的RDD转换映射为Java中的PythonRDD对象的转换。在远程工作机上,PythonRDD对象启动Python子进程,并使用管道与它们进行通信,发送用户的代码和要处理的数据。

PS:我不确定这是否能完全回答您的问题。

2021-01-20