2015-04-30 7 views

Odpowiedz

0

Można też określić wersję Pythona wymieniając ścieżkę do zainstalowania w linii shebang w skrypcie:

myfile.py:

#!/full/path/to/specific/python2.7 

lub poprzez wywołanie go z linii poleceń bez linii shebang w skrypcie:

/full/path/to/specific/python2.7 myfile.py 

Jednakże, polecam patrząc na doskonałe środowiskach wirtualnych Pythona, które pozwolą Ci stworzyć osobny „środowisk” dla każda wersja Pythona. Środowiska wirtualne w mniejszym lub większym stopniu pracują, posługując się całą specyfikacją ścieżki po ich aktywowaniu, dzięki czemu można po prostu wpisać python myfile.py bez obawy o sprzeczne zależności lub znając pełną ścieżkę do konkretnej wersji Pythona.

Click here for an excellent guide to getting started with Virtual Environments lub [here] dla oficjalnej dokumentacji Python3.

Jeśli nie masz dostępu do węzłów i używasz tego używając PySpark można określić Python version in your spark-env.sh:

Spark_Install_Dir/conf/spark-env.sh:

PYSPARK_PYTHON = /full/path/to/python_executable/eg/python2.7 
+0

faktycznie pracuję na klastrze Hadoop i nie mam dostępu do DataNodes, więc nie można użyć virtaul env. – A7med

+0

Próbowałem już twojej pierwszej sugestii z shebangiem, ale to nie działa. Właściwie uruchamiam aplikację iskrową, nie tylko plik python, więc nie mogę zrobić drugiej sugestii – A7med

+0

@ user4851438 Ah, przepraszam za to - sprawdź aktualizację - możesz użyć skryptu powłoki, aby zmodyfikować który pyton jest używany podczas uruchamiania skrypty przesłane . –

8

I Nie jestem pewien co do najnowszej wersji Sparka, ale w starszych można ustawić zmienną środowiskową PYSPARK_PYTHON na żądaną wersję Pythona, wewnątrz pliku conf/spark-env.sh.

Aby uzyskać więcej informacji, sprawdź numer configuration documentation.

+0

Próbowałem twojego rozwiązania: ustawiłem '' 'PYSPARK_PYTHON =/path/to/python''' in'''spark-env.sh''' ale nie działa. Używam iskry 1.3.1 – A7med

+1

O ile mi wiadomo, wszelkie zmienne środowiskowe powinny być ustawione w lokalizacji, którą zamieściłem. Pozostałe parametry są dodawane do conf/spark-defaults.conf jako pary wartości klucza. Zmieniono link w odpowiedzi na dokumenty 1.3.1, które są takie same jak w starszych wersjach. Skrypt do przesłania powinien być załadowany domyślnie w obu konfiguracjach. – benjamin

+0

dzięki, widziałem twój link, masz rację. ale nadal nie działa dla mnie. – A7med

5

W moim środowisku po prostu stosować

export PYSPARK_PYTHON=python2.7 

pracował dla mnie

+0

nie działa dla mnie. –

Powiązane problemy