web-dev-qa-db-fra.com

Pourquoi spark-Shell échoue-t-il avec "" "" C:\Program "n'est pas reconnu comme une commande interne ou externe" sous Windows?

Lors de l'exécution de l'invite de commande suivante, l'erreur se produit comme dans la capture d'écran.

 screenshot

Commander:

c:\spark>spark-Shell

Erreur:

'""C:\Program' is not recognized as an internal or external command,
operable program or batch file.

Pourquoi?

6
Suprit Gandhi

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.

10
Sid

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 !!!

2
P112

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%

2
kepung

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".

2
Jacek Laskowski

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.

1
Goran

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"
1
Fraser

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/

0
Shankar Koirala

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 

  1. Télécharger JDK 8 pour Windows
  2. Installer l'environnement de développement Java
  3. Téléchargez Spark avec la dernière version avec Hadoop préfabriqué
  4. Télécharger WinRar pour l'extraction
  5. Créer un dossier en C
  6. Aller au dossier Conf dans Spark
  7. Changer le format de log4j.propreties
  8. Ouvrez Log4 .. dans Word 
  9. Remplacer INFO par erreur
  10. Sauvegarder ce fichier
  11. Télécharger Winutils
  12. Créer un nouveau dossier en dérivant Winutils en C
  13. Coller le fichier de téléchargement winutils dans le dossier bin
  14. Définir l'environnement dans Windows
  15. Panneau de contrôle
  16. Cliquez sur Système et sécurité
  17. Système
  18. Paramétrage avancé du système
  19. Variables d'environnement
  20. (Set Spark Home) -Nouveau 
  21. Formulaire New_ Variables Utilisateur
  22. Variable _Name - SPARK_Home
  23. Chemin: - C:\Spark (dérive de l'étincelle dans C)
  24. (Set Java Home) - Nouveau 
  25. Java_HOME
  26. Chemin du dossier Java - (1er dossier Java)
  27. Définir le chemin Hadoop -
  28. HADOOP_HOME
  29. Chemin - C:\Wintulis
  30. Répertoires de chemins
  31. PATH- Modifier
  32. New-% SPARK_HOME%\bin
  33. NEW-% SPARK_HOME%\bin
  34. Environnement système terminé
0
Chandan Kumar

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

0
Haroun Mohammedi