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

Sey*_*emi 11 python multithreading apache-spark

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

eli*_*sah 6

多线程python问题与Apache Spark内部分离.Spark上的并行性是在JVM内部处理的.

在此输入图像描述

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

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

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

PS:我不确定这是否真的完全回答了你的问题.

  • 它认为这里的主要观点是PySpark不使用多线程,因此GIL根本不是问题. (2认同)