Apache Spark: Verwendung von pyspark mit Python 3

91

Ich habe Spark 1.4 vom GH-Entwicklungsmaster erstellt, und der Build lief einwandfrei. Aber wenn ich eine mache, bin/pysparkbekomme ich die Python 2.7.9 Version. Wie kann ich das ändern?

tchakravarty
quelle
7
Für alle, die danach suchen: PYSPARK_DRIVER_PYTHON=ipython3 PYSPARK_DRIVER_PYTHON_OPTS="notebook" ./bin/pysparkIn diesem Fall wird das IPython 3-Notebook ausgeführt.
Tchakravarty

Antworten:

141

Stellen Sie einfach die Umgebungsvariable ein:

export PYSPARK_PYTHON=python3

Wenn Sie möchten, dass dies eine dauerhafte Änderung ist, fügen Sie diese Zeile zum pyspark-Skript hinzu.

Rtik88
quelle
Die Umgebungsvariablen können unter / etc / profile bearbeitet werden. Vergessen Sie nicht, nach dem Speichern des Profils "source / etc / profile" auszuführen, damit die Änderungen sofort wirksam werden können.
Phytiker
1
Offensichtlich export PYSPARK_PYTHON=python3.5für Python 3.5
Phyticist
4
Es ist besser, dies hinzuzufügen, $SPARK_HOME/conf/spark-env.shdamit spark-submitauch derselbe Interpreter verwendet wird.
flow2k
@ flow2k das ist eine bessere idee. Tnx
mohammad RaoofNia
32
PYSPARK_PYTHON=python3 
./bin/pyspark

Wenn Sie in IPython Notebook ausgeführt werden möchten, schreiben Sie:

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

Wenn python3nicht zugänglich ist, müssen Sie stattdessen den Pfad dazu übergeben.

Beachten Sie, dass die aktuelle Dokumentation (ab 1.4.1) veraltete Anweisungen enthält. Zum Glück wurde es gepatcht .

Piotr Migdal
quelle
1
Ich denke, Ihr Befehl für das IPython Notebook ist nicht korrekt. Sollte so aussehen: PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = ipython3 PYSPARK_DRIVER_PYTHON_OPTS = "Notizbuch" ./bin/pyspark
SpiderRico
@ ChrisNielsen Im Terminal.
Piotr Migdal
@ChrisNielsen Unter Linux oder OS X ist ein Terminal / eine Konsole. Ich habe keine Ahnung, wie es unter Windows funktioniert (unter Windows habe ich Spark nur für einen Docker-Container verwendet).
Piotr Migdal
@SpiderRico Diese scheinen auf meinem Mac nicht zu funktionieren. Verwenden Sie Folgendes, damit Jupyter Notebook für Spark funktioniert. PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = jupyter PYSPARK_DRIVER_PYTHON_OPTS = "Notizbuch" ./bin/pyspark
Hank Chan
9

1, Profil bearbeiten:vim ~/.profile

2, fügen Sie den Code in die Datei ein: export PYSPARK_PYTHON=python3

3, Befehl ausführen: source ~/.profile

4, ./bin/pyspark

Yangh
quelle
4

Schauen Sie sich die Datei an. Die Shebang-Zeile zeigt wahrscheinlich auf die 'env'-Binärdatei, die den Pfad nach der ersten kompatiblen ausführbaren Datei durchsucht.

Sie können Python in Python3 ändern. Ändern Sie die Umgebung, um die python3-Binärdatei direkt fest zu codieren. Oder führen Sie die Binärdatei direkt mit python3 aus und lassen Sie die Shebang-Zeile weg.

rfkortekaas
quelle
1
Ja, es hat geholfen, in die Akte zu schauen. Wird benötigt, um die PYSPARK_PYTHONUmgebungsvariable festzulegen.
Tchakravarty
3

Bearbeiten Sie für Jupyter Notebook die spark-env.shDatei wie unten gezeigt über die Befehlszeile

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

Gehen Sie zum Ende der Datei und kopieren Sie diese Zeilen

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

Führen Sie dann einfach den folgenden Befehl aus, um pyspark in Notebook zu starten

$ pyspark
oya163
quelle