如何解决 Windows 上的“pyspark”无法识别...错误?

Pat*_*tig 7 python apache-spark pyspark

两周以来,我一直在尝试在我的 Windows 10 计算机上安装 Spark (pyspark),现在我意识到我需要您的帮助。

当我尝试在命令提示符中启动“pyspark”时,我仍然收到以下错误:

问题

“pyspark”不被识别为内部或外部命令、可操作程序或批处理文件。

对我来说,这暗示路径/环境变量有问题,但我找不到问题的根源。

我的行动

我尝试过多种教程,但我发现最好的是Michael Galarnyk的教程。我按照他的教程一步步进行:

  • 安装的Java
  • 安装了 Anaconda
  • 从官方网站下载了Spark 2.3.1(我相应地更改了命令,因为Michael的教程使用了不同的版本)。我按照cmd提示符中的教程移动了它:

    mv C:\Users\patri\Downloads\spark-2.3.1-bin-hadoop2.7.tgz C:\opt\spark\spark-2.3.1-bin-hadoop2.7.tgz
    
    Run Code Online (Sandbox Code Playgroud)

    然后我解压它:

    gzip -d spark-2.3.1-bin-hadoop2.7.tgz
    
    Run Code Online (Sandbox Code Playgroud)

    tar xvf spark-2.3.1-bin-hadoop2.7.tar
    
    Run Code Online (Sandbox Code Playgroud)
  • 从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
    
    Run Code Online (Sandbox Code Playgroud)
  • 相应地设置我的环境变量:

    setx SPARK_HOME C:\opt\spark\spark-2.3.1-bin-hadoop2.7
    setx HADOOP_HOME C:\opt\spark\spark-2.3.1-bin-hadoop2.7
    setx PYSPARK_DRIVER_PYTHON jupyter
    setx PYSPARK_DRIVER_PYTHON_OPTS notebook
    
    Run Code Online (Sandbox Code Playgroud)

    然后将C:\opt\spark\spark-2.3.1-bin-hadoop2.7\bin添加到我的路径变量中。我的环境用户变量现在看起来像这样: 当前环境变量

这些操作应该可以解决问题,但是当我运行时pyspark --master local[2],我仍然收到上面的错误。您可以使用上面的信息帮助追踪此错误吗?

支票

我在命令提示符中运行了一些检查来验证以下内容:

  • Java已安装
  • 蟒蛇已安装
  • 点已安装
  • Python已安装

mch*_*l_k 4

我通过将变量设置为“系统变量”而不是“用户变量”解决了这个问题。笔记

  1. 就我而言,从命令行设置变量会导致“用户变量”,因此我必须使用高级设置 GUI 输入值作为“系统变量”
  2. 您可能想排除任何安装问题,在这种情况下尝试 cd 进入 C:\opt\spark\spark-2.3.1-bin-hadoop2.7\bin 并运行pyspark master local[2](确保 winutils.exe 在那里);如果这不起作用那么你还有其他问题而不仅仅是环境变量