Apache Spark: Jak używać pyspark w Pythonie 3

95

Zbudowałem Spark 1.4 od mistrza rozwoju GH i kompilacja przebiegła pomyślnie. Ale kiedy robię bin/pyspark, otrzymuję wersję Pythona 2.7.9. Jak mogę to zmienić?

tchakravarty
źródło
7
Dla każdego, kto szuka, jak to zrobić: PYSPARK_DRIVER_PYTHON=ipython3 PYSPARK_DRIVER_PYTHON_OPTS="notebook" ./bin/pysparkw takim przypadku działa notebook IPython 3.
tchakravarty

Odpowiedzi:

145

Po prostu ustaw zmienną środowiskową:

export PYSPARK_PYTHON=python3

jeśli chcesz, aby była to trwała zmiana, dodaj tę linię do skryptu pyspark.

Rtik88
źródło
Zmienne środowiskowe można edytować w / etc / profile. Nie zapomnij uruchomić „source / etc / profile” po zapisaniu profilu, aby zmiany mogły zostać natychmiast zastosowane.
Phyticist,
1
Oczywiście użyj export PYSPARK_PYTHON=python3.5dla Pythona 3.5
Phyticist
4
Lepiej dodać to do, $SPARK_HOME/conf/spark-env.shwięc spark-submitużywa również tego samego interpretera.
flow2k
@ flow2k to lepszy pomysł. Tnx
mohammad RaoofNia
32
PYSPARK_PYTHON=python3 
./bin/pyspark

Jeśli chcesz uruchomić w Notatniku IPython, napisz:

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

Jeśli python3nie jest dostępny, musisz zamiast tego podać do niego ścieżkę.

Należy pamiętać, że aktualna dokumentacja (stan na 1.4.1) zawiera nieaktualne instrukcje. Na szczęście został poprawiony .

Piotr Migdal
źródło
1
Myślę, że twoje polecenie dotyczące Notatnika IPython jest nieprawidłowe. Powinno wyglądać tak: PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = ipython3 PYSPARK_DRIVER_PYTHON_OPTS = "notebook" ./bin/pyspark
SpiderRico
@ChrisNielsen W terminalu.
Piotr Migdal,
@ChrisNielsen W Linuksie lub OS X to terminal / konsola. Nie mam pojęcia, jak to działa pod Windowsem (w Windows używałem Spark'a tylko na kontenerze Docker).
Piotr Migdal
@SpiderRico Wydaje się, że nie działają na moim Macu. Aby Notatnik Jupyter pracował dla Spark, użyj następującego. PYSPARK_PYTHON = python3 PYSPARK_DRIVER_PYTHON = jupyter PYSPARK_DRIVER_PYTHON_OPTS = "notebook" ./bin/pyspark
Hank Chan
9

1, edytuj profil:vim ~/.profile

2, dodaj kod do pliku: export PYSPARK_PYTHON=python3

3, wykonaj polecenie: source ~/.profile

4, ./bin/pyspark

Yangh
źródło
4

Zajrzyj do pliku. Linia shebang jest prawdopodobnie wskazywana na plik binarny „env”, który przeszukuje ścieżkę w poszukiwaniu pierwszego zgodnego pliku wykonywalnego.

Możesz zmienić Pythona na python3. Zmień env, aby bezpośrednio używać zakodowanego na stałe pliku binarnego python3. Lub uruchom plik binarny bezpośrednio w pythonie3 i pomiń linię shebang.

rfkortekaas
źródło
1
Tak, zajrzenie do akt pomogło. Potrzebne do ustawienia PYSPARK_PYTHONzmiennej środowiskowej.
tchakravarty
4

W przypadku Jupyter Notebook edytuj spark-env.shplik, jak pokazano poniżej, z wiersza poleceń

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

Idź do dołu pliku i skopiuj, wklej te linie

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

Następnie po prostu uruchom następujące polecenie, aby uruchomić pyspark w notatniku

$ pyspark
oya163
źródło