运行下面的命令提示符时,屏幕截图中显示错误。
命令:
c:\spark>spark-shell
错误:
'""C:\Program' is not recognized as an internal or external command, operable program or batch file.
为什么?
Suprit,
这个问题很可能是在您的JAVA_HOME空间中。 如果路径包含空格,请使用缩短的路径名称。 例如, C:\Progra~1\Java\jdk1.8.0_131
如果您使用的是Windows10。 请尝试下面的
Set JAVA_HOME as "C:\Progra~1\Java\jdk1.8.0_131"
还要确保在PATH环境变量中包含%JAVA_HOME%\bin
。
我有同样的问题。 我卸载了Java,并安装在C:\Java
文件夹中,更改了所需的env设置,它只是为我工作!
某处设置了一个路径或变量,而不用双引号包装它。 因此,路径在第一空间被分割。
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"
我怀疑你把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 \ bin \ java”
然后打开名为spark-class2.cmd的文件,找到并更改为您的java home路径(仅更改下面的粗体文本)。
其他文字仅作为完整内容。
“ C:\ Program Files \ Java \ jdk1.8.0_25 \ bin \ java ”-Xmx128m -cp“%LAUNCH_CLASSPATH%”org.apache.spark.launcher.Main%>%LAUNCHER_OUTPUT%for / f“tokens = *” (%LAUNCHER_OUTPUT%)do(echo %% i set SPARK_CMD = %% i)del%LAUNCHER_OUTPUT%SPARK_CMD%
您必须按照本教程或其他教程设置环境变量中的spark的路径。
另一个选择是进入包含spark-shell的目录并直接执行它。
希望这个帮助,最好的问候
您需要将Environment变量设置为从任何目录使用spark-shell
。
或者你需要进入bin
文件夹来执行spark-shell
命令,在我的情况里面是/spark/spark-2.0.2-bin-hadoop2.7/bin/
我有同样的问题。 这种情况发生在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:\火花>火星壳它会工作
按照我的步骤