Pyspark (SparkContext):在向驱动程序发送其端口号之前,java 网关进程退出

Iri*_*iel 3 apache-spark pyspark jupyter-notebook

我已经为这个问题苦苦挣扎了四天,我查看了几个处理相同问题的网页,甚至在 Stackoverflow 中也没有找到解决方案。

我安装了 Spark-2.3.0 ,Scala 2.12.5 和 Hadoop-2.7.1(对于 winutils master),然后设置了相应的环境变量。我安装了 findspark,然后在我的 Jupyter Notebook 中启动了 pyspark。问题是当我运行时:

sc = pyspark.SparkContext('local')
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

java gateway process exited before sending the driver its port number
Run Code Online (Sandbox Code Playgroud)

我应该提到我使用的是 Java-1.8.0 并且我在我的环境变量中设置了:

 PYSPARK_SUBMIT_ARGS="--master local[2] pyspark-shell"
Run Code Online (Sandbox Code Playgroud)

如果您对我如何解决此问题有任何想法,我将不胜感激。谢谢!

ern*_*t_k 5

设置相当简单明了。以下是您可以遵循的步骤。

假定:

  • 您已下载 Spark 并将其存档解压缩到 中<spark_home>,将<spark_home>/bin目录添加到PATH变量中
  • 你已经安装了 Jupyter,它可以jupyter notebook从命令行启动

应遵循的步骤:

导出这两个变量。这最好在您的用户配置文件脚本中完成

export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'
Run Code Online (Sandbox Code Playgroud)

要打开 jupyter,你所要做的就是调用

pyspark
Run Code Online (Sandbox Code Playgroud)

如果您有其他选项,例如 master,您可以将它们传递给pyspark

pyspark --master local[2]
Run Code Online (Sandbox Code Playgroud)

当笔记本打开时,spark 上下文已经初始化(as sc),spark session 也已初始化(as ),spark您应该能够看到如下内容:

在此处输入图片说明