2017-07-07 1 views
0

Je crée une application Spark avec AWS DME, mais les étincelles fonctionne avec Python soumettre 3 au lieu de Python 2. Mais quand je lance pyspark à la place, il est Python 2.force python2 avec étincelles soumettre

Comment Je force spark-submit à utiliser Python 2?

J'ai essayé de faire

export PYSPARK_PYTHON=/usr/bin/python2 

mais cela n'a pas fonctionné.

Merci

Répondre

0

En fait, j'avais cela dans mon code

from __future__ import print_function 

et quand je courais l'impression « bonjour » il plantait parce que ce n'est pas la fonction d'impression par défaut. Mais je pensais que ce plantait parce qu'il utilisait Python 3 au lieu de Python 2.

1

Avez-vous essayé d'insérer la déclaration

PYSPARK_PYTHON=/usr/bin/python2 

dans le fichier spark-env.sh?

+0

Voulez-vous dire que je dois faire: export PYSPARK_PYTHON =/usr/bin/python2 avant d'exécuter le script? J'ai essayé de mettre SSH au cluster et de lancer manuellement le fichier code.py et il semble fonctionner avec Python 2. Mais quand je le fais avec --steps spark-submit ... il exécute Python 3. – Pierre

+0

Salut, Je veux dire si vous avez ajouté la variable d'environnement PYSPARK_PYTHON dans le fichier $ SPARK_HOME/conf/spark-env.sh sur vos nœuds de cluster. Le $ SPARK_HOME est le répertoire dans lequel vous avez installé Spark. –

+0

Je viens d'essayer et ça ne marche toujours pas. Donc, quand j'appelle spark-submit de SSH, il fonctionne avec Python2 mais quand j'ajoute une étape 'spark-submit' avec la console AWS (ou cli), il exécute Python3. – Pierre