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

时间:2018-04-03 08:38:07

标签: apache-spark pyspark jupyter-notebook

我正在努力解决这个问题四天,我在Stackoverflow中查看了几个处理相同问题的网页,但没有得到解决方案。

我安装了Spark-2.3.0,Scala 2.12.5和Hadoop-2.7.1(用于winutils master),然后设置相应的环境变量。我安装了findspark,然后在我的Jupyter笔记本中启动了pyspark。问题是我跑的时候:

Alamofire.request(url, method: .post, parameters:parameters, encoding: JSONEncoding.default).responseJSON { response in
     ...      
}

我收到以下错误:

sc = pyspark.SparkContext('local')

我应该提一下,我正在使用Java-1.8.0并在环境变量中设置:

java gateway process exited before sending the driver its port number

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

1 个答案:

答案 0 :(得分:3)

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

假设:

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

要遵循的步骤:

导出这两个变量。最好在您的用户个人资料脚本

中完成
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS='notebook'

要打开jupyter,您所要做的就是致电

pyspark

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

pyspark --master local[2]

当笔记本打开时, spark上下文已经初始化(如sc)和spark会话(如spark),你应该能看到一些东西像这样:

enter image description here