运行以下命令提示符时,我收到屏幕截图中所示的错误。
命令:
c:\spark>spark-shell
错误:
'""C:\Program' is not recognized as an internal or external command,
operable program or batch file.
为什么?
苏普里特,
问题很可能出在您的 JAVA_HOME 空间上。 如果路径包含空格,请使用缩短的路径名。例如,
C:\Progra~1\Java\jdk1.8.0_131
如果您使用的是Windows10。请尝试以下
Set JAVA_HOME as "C:\Progra~1\Java\jdk1.8.0_131"
还要确保您已将
%JAVA_HOME%\bin
包含在 PATH 环境变量中。
我怀疑您将Java安装到带有空格的目录中,因此
JAVA_HOME
破坏了Windows上的spark-shell
脚本。
确保将 Java 安装到路径中没有空格的目录中。
另一个选项是将
JAVA_HOME
设置为相同的值,但用双引号引起来,例如
set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_131"
这可能会导致 Windows 上的另一个问题,该问题在 为什么 Spark-shell 失败并显示“此时意外”?这只是将 Java 重新安装到路径中没有空格的目录中。
我还无法检查的事情是使用单引号(而不是双引号)包裹
JAVA_HOME
。与"x"
相比,理论上这将有助于通过该线。
首先你要找出你的JAVA_HOME在哪里。就我而言,它是“C:\Program Files\Java\jdk1.8.0_25 in\java”
然后打开名为spark-class2.cmd的文件,找到并更改为您的java主路径(仅更改下面的粗体文本)。
包含其他文本只是为了完整性。
“C:\ Program Files \ Java \ jdk1.8.0_25 in \ java”-Xmx128m -cp“%LAUNCH_CLASSPATH%”org.apache.spark.launcher.Main%*>%LAUNCHER_OUTPUT% for /f "tokens=*" %%i in (%LAUNCHER_OUTPUT%) do ( 回显%%i 设置 SPARK_CMD=%%i ) 删除%LAUNCHER_OUTPUT% %SPARK_CMD%
我也有同样的问题。我卸载了 java 并安装在
C:\Java
文件夹中,更改了所需的环境设置,它对我有用!!!
我也有同样的问题。 版本
spark-2.1.1-bin-hadoop2.7
会出现这种情况,但之前的版本 spark-2.1.0-bin-hadoop2.7
不会出现这种情况。
编辑
spark-2.1.1-bin-hadoop2.7/bin/spark-class2.cmd
的第 54 行,删除引号:
set RUNNER=%JAVA_HOME%\bin\java
然后它应该可以工作。
您在某个地方设置了路径或变量,但没有将其用双引号引起来。因此,路径在第一个空间上被分割。
C:\Program Files\Whatever
已经成为...
C:\Program
要修复它,您需要确保将路径变量用双引号引起来。
即
C:\Program Files\Whatever\Foo\My Bar\bin
应该是
"C:\Program Files\Whatever\Foo\My Bar\bin"
或者更好地使用用户路径的环境变量。例如
"%PROGRAMFILES(X86)%\Whatever\Foo\My Bar\bin"
"%PROGRAMFILES%\Whatever\Foo\My Bar\bin"
您需要设置环境变量才能从任何目录使用
spark-shell
。
或者你需要进入
bin
文件夹来执行 spark-shell
命令
就我而言,它在里面/spark/spark-2.0.2-bin-hadoop2.7/bin/
设置所有路径后,我遇到了同样的错误。 所以你有类型 Space Spark-shell c:\spark> 火花外壳 会起作用的
跟着我的脚步
在Windows中,当您安装java 8时,路径将为C:\Program Files\Java\jre1.8.0_431 它不会有 JDK 文件夹。如果您将其添加到环境变量中, %JAVA_HOME% C:\Program Files\Java\jre1.8.0_431
并且值应该在路径中: %JAVA_HOME%/bin
它对我有用。希望它也适合你