我想将Spyder与pyspark(spark-2.1.1)一起使用,但我无法解决相当令人沮丧的Java错误 . 在激活conda环境(Python版本为3.5.3)后,我在Windows 10中从命令行启动spyder . 这是我的代码:
import pyspark
sc = pyspark.SparkContext("local")
file = sc.textFile("C:/test.log")
words = file.flatMap(lambda line : line.split(" "))
words.count()
当我尝试定义 sc
时,我收到以下错误:
File "D:\spark-2.1.1-bin-hadoop2.7\python\pyspark\java_gateway.py", line 95, in launch_gateway
raise Exception("Java gateway process exited before sending the driver its port number")
Exception: Java gateway process exited before sending the driver its port number
为了完整起见:
-
如果我在激活conda环境后从命令行运行
pyspark
,它可以正常执行字数统计任务 . -
如果我从Windows 10的“开始”菜单启动Spyder App Desktop,一切正常(但我认为在这种情况下我无法从我的conda环境加载正确的python模块) .
-
相关的环境变量似乎没问题:
echo%SPARK_HOME%
d:\火花2.1.1彬hadoop2.7
echo%JAVA_HOME%
C:\的Java \ jdk1.8.0_121
echo%PYTHONPATH%
d:\火花2.1.1彬hadoop2.7 \蟒; d:\火花2.1.1彬hadoop2.7 \蟒\ lib中\ py4j-0.10.4-src.zip; d:\火花2.1.1彬hadoop2.7 \ python的\ lib中; C:\用户\用户\ Anaconda3
我已经尝试过提出的解决方案here,但没有任何对我有用 . 任何建议都非常感谢!
1 回答
由于1)正在运行,最好在Spyder中使用conda环境 .
在首选项中转到“Python解释器”部分并从“默认(即与Spyder的相同)”切换到“使用以下Python解释器” .
如果您的环境名为
spark_env
且Anaconda安装在C:\Program Files\Continnum\Anaconda
下,则与此环境对应的python配置文件为C:\Program Files\Continnum\Anaconda\envs\spark_env\python.exe
.此更改后Spyder startet中的python控制台将在您的conda环境中(请注意,这不适用于IPyhton) .
要检查环境变量,可以使用python代码确保这些变量与脚本看到的变量相同:
希望有所帮助 .