2017-05-26 1 views
0

Je voudrais utiliser Spyder avec pyspark (spark-2.1.1) mais je ne peux pas corriger une erreur Java plutôt frustrante. Je lance spyder à partir de la ligne de commande dans Windows 10 après l'activation d'un environnement de conda (la version de Python est 3.5.3). Ceci est mon code:Pyspark: la définition de SparkContext dans Spyder déclenche une erreur de passerelle Java

import pyspark 
sc = pyspark.SparkContext("local") 
file = sc.textFile("C:/test.log") 
words = file.flatMap(lambda line : line.split(" ")) 
words.count() 

Lorsque je tente de définir sc i l'erreur suivante:

File "D:\spark-2.1.1-bin-hadoop2.7\python\pyspark\java_gateway.py", line 95, in launch_gateway 
    raise Exception("Java gateway process exited before sending the driver its port number") 

Exception: Java gateway process exited before sending the driver its port number 

Par souci d'exhaustivité:

  1. si je lance pyspark de la ligne de commande après l'activation de l'environnement conda, il fonctionne et effectue correctement la tâche de compte de mots.

  2. Si je lance Spyder Desktop App à partir du menu Démarrer de Windows 10, tout fonctionne (mais je pense que je ne peux pas charger les modules python droit de mon environnement Conda dans ce cas).

  3. Les variables d'environnement connexes semblent être ok:

    echo% SPARK_HOME%

    D: \ étincelle-2.1.1-bin-hadoop2.7

    echo% JAVA_HOME%

    C: \ Java \ jdk1.8.0_121

    echo% PYTHONPATH%

    D: \ spark-2.1.1-bin-hadoop2.7 \ python; D: \ étinc-2.1.1-bin-hadoop2.7 \ python \ lib \ py4j-0.10.4-src.zip; D: \ spark-2.1.1-bin-hadoop2.7 \ python \ lib; C: \ Users \ user \ Anaconda3

J'ai déjà essayé les solutions proposées here, mais rien ne fonctionnait pour moi. Toute suggestion est grandement appréciée!

+0

Salut @ChiaraM Pouvez-vous s'il vous plaît laissez-moi savoir en détail votre premier point.Désolé que je suis nouveau à pyspark et essayant de faire la même chose que vous avez mais a rencontré la même erreur que vous avez. – JKC

Répondre

0

Puisque 1) fonctionne, il est probablement préférable d'utiliser l'environnement conda dans Spyder.

Dans Préférences, accédez à la section "Interpréteur Python" et passez de "Par défaut (c'est-à-dire identique à celui de Spyder)" à "Utiliser l'interpréteur Python suivant".

Si votre environnement est appelé spark_env et que Anaconda est installé sous C:\Program Files\Continnum\Anaconda, le profil python correspondant à cet environnement est C:\Program Files\Continnum\Anaconda\envs\spark_env\python.exe.

Une console python dans le démarrage de Spyder après cette modification sera dans votre environnement de conda (notez que ceci ne s'applique pas à IPyhton).

Pour vérifier les variables d'environnement, vous pouvez utiliser le code Python pour vous assurer que ce sont les mêmes variables: votre script voit

from os import environ 
    print(environ['SPARK_HOME']) 
    print(environ['JAVA_HOME']) 
    try: 
      print(environ['PYSPARK_SUBMIT_ARGS']) 
    except: 
     print("no problem with PYSPARK_SUBMIT_ARGS") # https://github.com/ContinuumIO/anaconda-issues/issues/1276#issuecomment-277355043 

espoir qui aide.

+0

Merci beaucoup, votre suggestion a résolu le problème. – ChiaraM

+0

Salut @ daten-kieker J'ai aussi eu la même erreur que le propriétaire de cette question et j'ai essayé de faire ce que vous avez mentionné. Pourtant, je reçois la même erreur. Pouvez-vous s'il vous plaît m'aider sur ceci pour être résolu :( – JKC

+0

Salut @JKC, est votre installation et les résultats aux étapes ChiaraM décrites identiques? Quel est le résultat du petit script de test? –