web-dev-qa-db-fra.com

Le système ne peut pas trouver l'erreur du chemin spécifié lors de l'exécution de pyspark

Je viens de télécharger spark-2.3.0-bin-hadoop2.7.tgz. Après le téléchargement, j'ai suivi les étapes mentionnées ici Installation de pyspark pour Windows 10 . J'ai utilisé le commentaire bin\pyspark pour exécuter le message d'erreur spark & ​​got 

The system cannot find the path specified

Ci-joint la capture d’écran du message d’erreur  enter image description here

Vous trouverez ci-joint la capture d’écran de mon dossier «bin spark»  enter image description here

La capture d'écran de ma variable de chemin ressemble à

 enter image description here  enter image description here J'ai Python 3.6 & Java "1.8.0_151" dans mon système Windows 10 Pouvez-vous me suggérer comment résoudre ce problème?

4
Christina Hughes

Travaillé des heures et des heures sur ce sujet. Mon problème était avec l'installation de Java 10. Je l'ai désinstallé et installé Java 8, et maintenant Pyspark fonctionne.

1
Amin Ghaderi

Basculer SPARK_HOME en C:\spark\spark-2.3.0-bin-hadoop2.7 et changer PATH pour inclure %SPARK_HOME%\bin ont été l’essentiel pour moi.

A l'origine, SPARK_HOME était défini sur C:\spark\spark-2.3.0-bin-hadoop2.7\bin et PATH le référençait sous la forme %SPARK_HOME%.

L'exécution d'une commande d'allumage directement dans mon répertoire SPARK_HOME n'a fonctionné qu'une seule fois. Après ce succès initial, j'ai alors remarqué votre même erreur et que echo %SPARK_HOME% montrait C:\spark\spark-2.3.0-bin-hadoop2.7\bin\.. Je pensais que spark-Shell2.cmd l'avait peut-être modifié pour tenter de fonctionner, ce qui m'a conduit ici.

0
yoyomeng

Très probablement, vous avez oublié de définir les variables d'environnement Windows telles que le répertoire Spark bin se trouve dans votre variable d'environnement PATH.

Définissez les variables d’environnement suivantes à l’aide des méthodes habituelles pour Windows.

Définissez d'abord une variable d'environnement appelée SPARK_HOME comme étant C:\spark\spark-2.3.0-bin-hadoop2.7

Ajoutez ensuite% SPARK_HOME%\bin à votre variable d’environnement PATH existante ou, s’il n’en existe pas (peu probable), définissez PATH sur% SPARK_HOME%\bin.

S'il n'y a pas de typo spécifiant le PATH, Echo% PATH% devrait vous donner le chemin entièrement résolu du répertoire Spark bin, c'est-à-dire qu'il devrait ressembler à 

C:\spark\spark-2.3.0-bin-hadoop2.7\bin;

Si PATH est correct, vous devriez pouvoir taper pyspark dans n’importe quel répertoire et le lancer. 

Si cela ne résout pas le problème, le problème est peut-être tel que spécifié dans pyspark: le système ne peut pas trouver le chemin spécifié auquel cas cette question est un doublon.

0
paisanco

Mise à jour: dans mon cas, il s'agissait d'un mauvais chemin pour Java, je l'ai fait fonctionner ...

J'ai le même problème. J'ai initialement installé Spark via pip et pyspark a fonctionné avec succès. Ensuite, j'ai commencé à jouer avec les mises à jour d'Anaconda et cela n'a jamais plus fonctionné. Toute aide serait appréciée...

Je suppose que PATH est correctement installé pour l'auteur d'origine. Un moyen de vérifier cela consiste à exécuter spark-class à partir de la commande Invite. Avec PATH correct, il retournera Usage: spark-class <class> [<args>] lorsqu’il sera exécuté à partir d’un emplacement quelconque. L'erreur de pyspark provient d'une chaîne de fichiers .cmd que j'ai tracée jusqu'aux dernières lignes de spark-class2.cmd

C'est peut-être idiot, mais modifier le dernier bloc de code présenté ci-dessous modifie le message d'erreur que vous obtenez de pyspark dans "Le système ne peut pas trouver le chemin spécifié" en "La syntaxe de la commande est incorrecte". Si vous supprimez tout ce bloc, pyspark ne fait rien.

rem The launcher library prints the command to be executed in a single line suitable for being
rem executed by the batch interpreter. So read all the output of the launcher into a variable.
set LAUNCHER_OUTPUT=%temp%\spark-class-launcher-output-%RANDOM%.txt
"%RUNNER%" -Xmx128m -cp "%LAUNCH_CLASSPATH%" org.Apache.spark.launcher.Main 
%* > %LAUNCHER_OUTPUT%
for /f "tokens=*" %%i in (%LAUNCHER_OUTPUT%) do (
  set SPARK_CMD=%%i
)
del %LAUNCHER_OUTPUT%
%SPARK_CMD%

J'ai supprimé "del% LAUNCHER_OUTPUT%" et j'ai constaté que le fichier texte généré reste vide. Il s'avère que "% RUNNER%" n'a pas trouvé le répertoire correct avec Java.exe parce que je me suis trompé avec PATH en Java (pas avec Spark).

0
ph0987

Mon problème était que Java_HOME pointait vers le dossier JRE au lieu de JDK. Assurez-vous de vous en occuper

0
Michal