在我的Windows 10机器上安装Spark(pyspark(已经两周了,现在我意识到我需要你的帮助。
当我尝试在命令提示符中启动"pyspark"时,我仍然收到以下错误:
问题
"pypark"未被识别为内部或外部命令,可操作程序或批处理文件。
对我来说,这暗示了路径/环境变量的问题,但我找不到问题的根源。
我的操作
我试过很多教程,但我发现最好的是迈克尔·加拉尼克的教程。我一步一步地遵循他的教程:
- 已安装Java
- 安装的蟒蛇
-
从官方网站下载了Spark 2.3.1(我相应地更改了命令,因为Michael的教程使用了不同的版本(。我在cmd提示符中按照教程移动了它:
mv C:UserspatriDownloadsspark-2.3.1-bin-hadoop2.7.tgz C:optsparkspark-2.3.1-bin-hadoop2.7.tgz
然后我解开了它:
gzip -d spark-2.3.1-bin-hadoop2.7.tgz
和
tar xvf spark-2.3.1-bin-hadoop2.7.tar
-
从Github:下载Hadoop 2.7.1
curl -k -L -o winutils.exe https://github.com/steveloughran/winutils/raw/master/hadoop-2.7.1/bin/winutils.exe?raw=true
-
相应地设置我的环境变量:
setx SPARK_HOME C:optsparkspark-2.3.1-bin-hadoop2.7 setx HADOOP_HOME C:optsparkspark-2.3.1-bin-hadoop2.7 setx PYSPARK_DRIVER_PYTHON jupyter setx PYSPARK_DRIVER_PYTHON_OPTS notebook
然后将C:\opt\spark\spark-2.3.1-bin-hadoop2.7\bin添加到我的路径变量中。我的环境用户变量现在如下所示:当前环境变量
这些操作本应达到目的,但当我运行pyspark --master local[2]
时,我仍然会收到上面的错误。你能用上面的信息来追踪这个错误吗?
支票
我在命令提示符下运行了几次检查,以验证以下内容:
- Java已安装
- Anaconda已安装
- pip已安装
- Python已安装
我通过将变量设置为"系统变量"而不是"用户变量"来解决此问题。票据
- 在我的情况下,从命令行设置变量会导致"用户变量",因此我必须使用高级设置GUI将值输入为"系统变量">
- 您可能想排除任何安装问题,在这种情况下,请尝试cd到C:\opt\spark\spark-2.3.1-bin-hadoop2.7\bin并运行
pyspark master local[2]
(确保winutils.exe在那里(;如果这不起作用,那么除了env变量之外还有其他问题
按照我博客中解释的给定步骤将解决您的问题-
如何在Windows上设置PySparkhttps://beasparky.blogspot.com/2020/05/how-to-setup-pyspark-in-windows.html
为Spark设置环境路径
Go to "Advanced System Settings" and set below paths
JAVA_HOME="C:Program FilesJavajdk1.8.0_181"
HADOOP_HOME="C:spark-2.4.0-bin-hadoop2.7"
SPARK_HOME="C:spark-2.4.0-bin-hadoop2.7"
Also, add their bin path into the PATH system variable