Apache Spark: Comment utiliser pyspark avec Python 3

91

J'ai construit Spark 1.4 à partir du maître de développement GH, et la construction s'est bien déroulée. Mais quand je fais un, bin/pysparkj'obtiens la version Python 2.7.9. Comment puis-je changer cela?

tchakravarty
la source
7
Pour tous ceux qui cherchent comment faire cela PYSPARK_DRIVER_PYTHON=ipython3 PYSPARK_DRIVER_PYTHON_OPTS="notebook" ./bin/pyspark:, auquel cas il exécute le notebook IPython 3.
tchakravarty

Réponses:

141

Définissez simplement la variable d'environnement:

export PYSPARK_PYTHON=python3

au cas où vous voudriez que ce soit un changement permanent, ajoutez cette ligne au script pyspark.

Rtik88
la source
Les variables d'environnement peuvent être éditées sous / etc / profile. N'oubliez pas d'exécuter "source / etc / profile" après avoir enregistré le profil, afin que les modifications puissent être prises en compte immédiatement.
Phyticist
1
Évidemment, utilisez export PYSPARK_PYTHON=python3.5pour Python 3.5
Phyticist
4
Il est préférable d'ajouter ceci $SPARK_HOME/conf/spark-env.shafin d' spark-submitutiliser également le même interpréteur.
flow2k
@ flow2k c'est une meilleure idée. Tnx
mohammad RaoofNia
32
PYSPARK_PYTHON=python3 
./bin/pyspark

Si vous souhaitez exécuter dans IPython Notebook, écrivez:

PYSPARK_PYTHON=python3 
PYSPARK_DRIVER_PYTHON=ipython 
PYSPARK_DRIVER_PYTHON_OPTS="notebook" 
./bin/pyspark

Si python3n'est pas accessible, vous devez lui passer le chemin.

Gardez à l'esprit que la documentation actuelle (à partir de 1.4.1) contient des instructions obsolètes. Heureusement, il a été corrigé .

Piotr Migdal
la source
1
Je pense que votre commande pour le notebook IPython n'est pas correcte. Devrait être comme ceci: PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = ipython3 PYSPARK_DRIVER_PYTHON_OPTS = "notebook" ./bin/pyspark
SpiderRico
@ChrisNielsen Dans le terminal.
Piotr Migdal
@ChrisNielsen Sous Linux ou OS X est un terminal / console. Je n'ai aucune idée de son fonctionnement sous Windows (sous Windows, j'ai utilisé Spark uniquement sur un conteneur Docker).
Piotr Migdal
@SpiderRico Cela ne semble pas fonctionner sur mon Mac. Pour que Jupyter Notebook fonctionne pour Spark, utilisez ce qui suit. PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = jupyter PYSPARK_DRIVER_PYTHON_OPTS = "notebook" ./bin/pyspark
Hank Chan
9

1, modifier le profil:vim ~/.profile

2, ajoutez le code dans le fichier: export PYSPARK_PYTHON=python3

3, exécutez la commande: source ~/.profile

4, ./bin/pyspark

Yangh
la source
4

Jetez un œil au dossier. La ligne shebang est probablement pointée vers le binaire 'env' qui recherche le chemin du premier exécutable compatible.

Vous pouvez changer python en python3. Modifiez l'environnement pour utiliser directement le binaire python3 codé en dur. Ou exécutez le binaire directement avec python3 et omettez la ligne shebang.

rfkortekaas
la source
1
Ouais, regarder dans le dossier a aidé. Nécessaire pour définir la PYSPARK_PYTHONvariable d'environnement.
tchakravarty
4

Pour Jupyter Notebook, modifiez le spark-env.shfichier comme indiqué ci-dessous à partir de la ligne de commande

$ vi $SPARK_HOME/conf/spark-env.sh

Aller au bas du fichier et copier coller ces lignes

export PYSPARK_PYTHON=python3
export PYSPARK_DRIVER_PYTHON=jupyter
export PYSPARK_DRIVER_PYTHON_OPTS="notebook"

Ensuite, exécutez simplement la commande suivante pour démarrer pyspark dans notebook

$ pyspark
oya163
la source