2017-10-16 11 views
0

J'ai écrit un script Python très simple pour tester mon idée de diffusion d'étincelles et j'ai l'intention de l'exécuter sur ma machine locale pour gâcher un peu. Voici la ligne de commande:Spark-submit ne parvient pas à localiser le fichier local

spark-submit spark_streaming.py localhost 9999 

Mais le terminal m'a jeté une erreur:

Error executing Jupyter command '<the/spark_streaming.py/file/path>': [Errno 2] No such file or directory 

Je ne sais pas pourquoi cela se passerait-il, et je suis sûr que le fichier .py existe .

EDIT: il n'y a pas de problème en cours d'exécution avec python au lieu de spark-submit

Et aussi, les lignes ajoutées dans le fichier .bashrc:

export PATH="/usr/local/spark/bin:$PATH" 
export PYSPARK_DRIVER_PYTHON=jupyter 
export PYSPARK_DRIVER_PYTHON_OPTS='notebook' 
export SPARK_LOCAL_IP=localhost 

Répondre

0

Supposons que vous voulez spark-submit Yarn un script Python situé à /home/user/scripts/spark_streaming.py, la syntaxe correcte est la suivante:

spark-submit --master yarn --deploy-mode client /home/user/scripts/spark_streaming.py 

Vous pouvez intercha nge l'ordre des différents drapeaux, mais le script lui-même doit être à la fin; Si votre script accepte les arguments, ils doivent suivre le nom du script (par exemple, voir this example pour le calcul de pi avec 10 chiffres décimaux).

Pour exécuter localement avec, disons, 2 cœurs, vous devez utiliser --master local[2] - utiliser --master local[*] pour tous les noyaux locaux disponibles (pas de drapeau deploy-mode dans les deux cas).

Cochez la case docs pour plus d'informations (même s'il est vrai qu'ils sont plutôt pauvres dans les démonstrations de pyspark).

PS La mention de Jupyter, ainsi le chemin indiqué dans votre message d'erreur sont extrêmement déroutante ...

MISE À JOUR: Il semble que PYSPARK_DRIVER_PYTHON=jupyter bousille tout, canalisant l'exécution par Jupyter (ce qui est indésirable ici , et cela peut expliquer le message d'erreur bizarre). Essayez de modifier les variables d'environnement dans votre .bashrc comme suit:

export SPARK_HOME="/usr/local/spark" # do not include /bin 
export PYSPARK_PYTHON=python 
export PYSPARK_DRIVER_PYTHON=python 
export PYSPARK_DRIVER_PYTHON_OPTS="" 

et source .bashrc.

+0

Malheureusement, peu importe comment je configure ces drapeaux et ces arguments, l'erreur reste la même. En parlant de 'Jupyter', je suppose que cela pourrait être dû à certaines variables d'environnement que j'ai définies dans le fichier .bashrc? Et en passant, je n'ai aucun problème à le lancer avec 'python' par opposition à' spark-submit', ce qui est bizarre. lol –

+0

@JamesWong Jupyter ne devrait rien avoir à faire ici. Et d'où vient ce '/ spark_streaming.py/file/path'? Avez-vous configuré 'SPARK_HOME'? – desertnaut

+0

Je n'ai pas défini SPARK_HOME explicitement comme vous pouvez le voir dans la publication mise à jour ci-dessus. Le fichier spark_streaming.py est simplement le fichier situé sur le disque local. –