Python Worker 无法在 Pyspark 或 Spark 版本 2.3.1 中重新连接

Raj*_*h P 3 apache-spark pyspark

安装 anaconda3 并安装 Spark(2.3.2) 后,我尝试运行示例 pyspark 代码。

这只是我通过 Jupyter 运行的示例程序,我收到如下错误

Python 工作线程无法重新连接。

根据堆栈溢出中的以下问题:

Python Worker 无法重新连接

我可以看到这样的解决方案我遇到了同样的错误。我通过安装以前版本的 Spark(2.3 而不是 2.4)解决了这个问题。现在可以正常使用了,可能是最新版本pyspark的问题。

但我使用的spark版本是2.3.1,python版本是3.7

尽管如此,我仍然面临这个问题。请帮我解决这个错误

from pyspark.sql import SparkSession
spark = SparkSession.builder.appName("mySparkApp").getOrCreate()
testData=spark.sparkContext.parallelize([3,8,2,5])
testData.count()
Run Code Online (Sandbox Code Playgroud)

回溯是:

Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: org.apache.spark.SparkException: Job aborted due to stage failure: Task 2 in stage 1.0 failed 1 times, most recent failure: Lost task 2.0 in stage 1.0 (TID 6, localhost, executor driver): org.apache.spark.SparkException: Python worker failed to connect back.
    at org.apache.spark.api.python.PythonWorkerFactory.createSimpleWorker(PythonWorkerFactory.scala:170)
    at org.apache.spark.api.python.PythonWorkerFactory.create(PythonWorkerFactory.scala:97)
    at org.apache.spark.SparkEnv.createPythonWorker(SparkEnv.scala:117)
    at org.apache.spark.api.python.BasePythonRunner.compute(PythonRunner.scala:108)
    at org.apache.spark.api.python.PythonRDD.compute(PythonRDD.scala:65)
    at org.apache.spark.rdd.RDD.computeOrReadCheckpoint(RDD.scala:324)
Run Code Online (Sandbox Code Playgroud)

Ram*_*eja 13

只需将环境变量PYSPARK_PYTHON添加为python。它解决了这个问题。无需升级或降级 Spark 版本。这对我有用。

在此输入图像描述


Hen*_*nco 5

按如下方式设置环境变量:

  • PYSPARK_DRIVER_PYTHON=jupyter
  • PYSPARK_DRIVER_PYTHON_OPTS=notebook
  • PYSPARK_PYTHON=python

问题的核心是pyspark和python之间的连接,通过改变它们来解决。