pyspark 报错 Exception: Java gateway process exited before sending its port number

出现这个问题先别着急,对应以下几步看一看,(如果spark-shell正常快进到最后一步)

1.是否安装了 JDK ,Spark:

  • 如果没有安装,可以去JAVA官网下载JDK。安装完了别忘了设置环境变量。
    java 官网的jdk下载地址 https://www.oracle.com/java/technologies/javase

2.都安装了情况下,cmd输入 spark-shell 看一下spark

  • **2.1:Spark-shell 输入后出现,系统找不到路径 ,检查JDK,Spark 的环境变量设置是否正确,路径中不能有空格,JAVA有空格就重装,SPARK换路径

  • 2.2:Spark-shell 输入后有反应报错Failed to initialize compiler: object java.lang.Object in compiler mirror no***
    1)这种情况为JDK版本不对,一般是JDK版本过高,卸载JDK,装JDK8的版本就好了

3.Spark-shell 正常

若果spark-shell 正常的话,还出现这种情况只剩一种可能,pyspark的版本与spark版本不对应,博主就是这个问题,整了一晚上,才发现是pyspark版本问题。。下面命令即可解决

pip intsall pyspark==2.2.1

之后测试一下代码

from pyspark import SparkContext
sc = SparkContext('local','pyspark')

成功

4.对应版本后还是报错,Python in worker has different version

有可能anaconda 的python版本过高(3.7以上),用anaconda装一个低版本,然后指定环境变量

os.environ["PYSPARK_PYTHON"] = 'D:\miniconda\envs\python35\python.exe'

4.2 ++++++如果是在jupyter里运行的话,要另外加这两句,否则还会报错

‘’’

os.environ['PYSPARK_DRIVER_PYTHON'] = 'D:\miniconda\envs\python36\Scripts\jupyter.exe'
os.environ['PYSPARK_DRIVER_PYTHON_OPTS'] = " --ip=0.0.0.0 --port=7777"

这是因为pysaprk读版本中,如果路径是python不是jpt,拿不到对应的内核

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐