Lors de l'exécution de l'invite de commande suivante, l'erreur se produit comme dans la capture d'écran.
Commander:
c:\spark>spark-Shell
Erreur:
'""C:\Program' is not recognized as an internal or external command,
operable program or batch file.
Pourquoi?
Suprit,
Le problème est probablement lié à l’espace dans votre Java_HOME. Si le chemin contient des espaces, utilisez le nom de chemin abrégé. Par exemple, C:\Progra~1\Java\jdk1.8.0_131
Si vous utilisez Windows10. s'il vous plaît essayez le ci-dessous
Set Java_HOME as "C:\Progra~1\Java\jdk1.8.0_131"
Assurez-vous également que vous avez inclus %Java_HOME%\bin
dans votre variable d’environnement PATH.
J'ai eu le même problème. J'ai désinstallé Java et installé dans le dossier C:\Java
, modifié les paramètres env requis et cela a fonctionné pour moi !!!
Vous devez d’abord savoir où se trouve votre Java_HOME. Dans mon cas, il s’agit de "C:\Program Files\Java\jdk1.8.0_25\bin\Java"
Ouvrez ensuite votre fichier appelé spark-class2.cmd, localisez-le et remplacez-le par votre chemin de base Java (changez uniquement le texte en gras ci-dessous).
Le texte supplémentaire est inclus pour la complétude seulement.
" C:\Programmes\Java\jdk1.8.0_25\bin\Java " -Xmx128m-cp "% LAUNCH_CLASSPATH%" org.Apache.spark.launcher.Main% *>% LAUNCHER_OUTPUT% pour/f "tokens = *" %% i dans (% LAUNCHER_OUTPUT%) ne ( écho %% i définir SPARK_CMD = %% i ) del% LAUNCHER_OUTPUT% % SPARK_CMD%
I suspect que vous avez installé Java dans un répertoire avec un espace afin que Java_HOME
rompt le script spark-Shell
sous Windows.
Assurez-vous d’installer Java dans un répertoire sans espace dans le chemin.
L’autre option consisterait à définir Java_HOME
avec la même valeur, mais avec des guillemets doubles, par exemple.
set Java_HOME="C:\Program Files\Java\jdk1.8.0_131"
Cela entraînera probablement un autre problème sous Windows auquel il a été répondu dans Pourquoi échec de spark-Shell avec "était-il inattendu à ce moment-là"? c'est simplement pour réinstaller Java dans un répertoire sans espace dans le chemin.
La chose que je ne pouvais pas encore vérifier serait d'encapsuler Java_HOME
en utilisant des guillemets simples (et non des guillemets doubles). En théorie, cela aiderait à passer la ligne avec la comparaison avec "x"
.
J'ai eu le même problème. Cela se produit avec la version spark-2.1.1-bin-hadoop2.7
mais pas avec la version précédente spark-2.1.0-bin-hadoop2.7
.
Modifiez la ligne 54 de spark-2.1.1-bin-hadoop2.7/bin/spark-class2.cmd
en supprimant les guillemets comme suit:
set RUNNER=%Java_HOME%\bin\Java
Alors ça devrait marcher.
Quelque part, vous avez défini un chemin ou une variable sans le placer entre guillemets. Par conséquent, le chemin est divisé sur le premier espace.
C:\Program Files\Whatever
est devenu...
C:\Program
Pour résoudre ce problème, vous devez vous assurer de mettre les variables de chemin d'accès entre guillemets.
c'est à dire
C:\Program Files\Whatever\Foo\My Bar\bin
devrait être
"C:\Program Files\Whatever\Foo\My Bar\bin"
ou encore mieux utiliser les variables d'environnement pour les chemins d'utilisateurs. par exemple.
"%PROGRAMFILES(X86)%\Whatever\Foo\My Bar\bin"
"%PROGRAMFILES%\Whatever\Foo\My Bar\bin"
Vous devez définir la variable d'environnement pour qu'elle utilise spark-Shell
à partir de n'importe quel répertoire.
Ou vous devez aller dans le dossier bin
pour exécuter la commande spark-Shell
Dans mon cas, elle est dans le /spark/spark-2.0.2-bin-hadoop2.7/bin/
J'obtenais la même erreur après avoir défini tous les chemins. Donc vous avez le type Space spark-Shell
Suivre à mon pas
Vous devez définir le chemin d’étincelle dans les variables d’environnement en suivant this ou tout autre didacticiel.
Une autre option consiste à aller dans le répertoire contenant le spark-Shell et à l'exécuter directement.
J'espère que cette aide, Cordialement