没解决你找我,windows解决Exception: Java gateway process exited before sending its port number的问题,
pyspark 报错Exception: Java gateway process exited before sending its port number出现这个问题先别着急,对应以下几步看一看,(如果spark-shell正常快进到最后一步)1.是否安装了 JDK ,Spark:如果没有安装,可以去JAVA官网下载JDK。安装完了别忘了设置环境变量。java 官网的jdk下载地址https:
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,拿不到对应的内核
更多推荐
所有评论(0)