Mam dwie wersje Pythona. Kiedy uruchamiam aplikację iskrową przez iskrowanie, używa domyślnej wersji Pythona. Ale chcę użyć innej wersji. Próbowałem umieścić ścieżkę Pythona na górze mojego pliku .py, ale to nie działa. Czy jest możliwe określenie wersji, która jest używana przez iskrę przed wysyłaniem?W jaki sposób określa się wersję pythona używaną do wysyłania iskier?
Odpowiedz
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
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.
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
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
dzięki, widziałem twój link, masz rację. ale nadal nie działa dla mnie. – A7med
W moim środowisku po prostu stosować
export PYSPARK_PYTHON=python2.7
pracował dla mnie
nie działa dla mnie. –
- 1. W jaki sposób określa się adres powrotu w stosie?
- 2. W jaki sposób GDB określa dno stosu?
- 3. W jaki sposób MEF określa kolejność importu?
- 4. Jak przesłać zadanie iskrzenia z programu java do niezależnego klastra iskier bez używania funkcji wysyłania iskier?
- 5. Jak znaleźć wersję Struts używaną w projekcie
- 6. Funkcja defektu Pythona: Jak określa się koniec funkcji?
- 7. W jaki sposób x | 0 określa liczbę w JavaScript?
- 8. W jaki sposób MSTest określa kolejność uruchamiania metod testowych?
- 9. Bezpieczny sposób odinstalować starą wersję Pythona
- 10. W jaki sposób Assert.AreEqual określa równość dwóch ogólnych IEnumerables?
- 11. Sposób korzystania z funkcji automatycznego zgłaszania iskier
- 12. W jaki sposób Kernel określa sekwencję __init połączeń
- 13. W jaki sposób kompilator określa rozmiar struktury bitfield?
- 14. Jak znaleźć wersję .NET używaną w istniejącym projekcie?
- 15. W jaki sposób określa się ścieżki zależności bibliotek współdzielonych w systemie Linux?
- 16. Jak znaleźć aktualną wersję QtWebKit używaną w Qt SDK?
- 17. W jaki sposób RStudio określa szerokość konsoli i dlaczego wydaje się być konsekwentnie błędne?
- 18. Python Boto: W jaki sposób określa się identyfikator podsieci ORAZ grupę zabezpieczeń?
- 19. Jak uaktualnić wersję SQLite używaną przez moduł SQLite3 Pythona na komputerze Mac?
- 20. W jaki sposób wewnętrzne listy magazynu Pythona?
- 21. Java - znajdź używaną wersję tzdata niezależnie od wersji JRE
- 22. Funkcja Emacsa do wysyłania wiadomości do funkcji Pythona Jestem w
- 23. W jaki sposób przekazywać argumenty do skryptu Pythona z IronPython
- 24. Jaki jest właściwy sposób wysyłania Alt + Tab w Ahk?
- 25. W jaki sposób ustawić ścieżkę wysyłania dla biblioteki wysyłania Codeigniter na komputerze lokalnym?
- 26. Jaki jest dobry sposób dodawania zależności Pythona do kontenera Docker?
- 27. W jaki sposób mogę zaktualizować wersję PHP dla XAMPP
- 28. W jaki sposób partycje mapują się do zadań w Sparku?
- 29. W jaki sposób Maven określa cele celu realizowane w danej fazie?
- 30. W jaki sposób DropBox chroni swój kod Pythona?
faktycznie pracuję na klastrze Hadoop i nie mam dostępu do DataNodes, więc nie można użyć virtaul env. – A7med
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
@ 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 . –