To jest kopia czyjegoś pytania na innym forum, na które nigdy nie udzielono odpowiedzi, więc pomyślałem, że zadam je tutaj ponownie, ponieważ mam ten sam problem. (Zobacz http://geekple.com/blogs/feeds/Xgzu7/posts/351703064084736 )
Mam poprawnie zainstalowanego Spark'a na moim komputerze i jestem w stanie uruchamiać programy w Pythonie z modułami pyspark bez błędów podczas używania ./bin/pyspark jako mojego interpretera Pythona.
Jednak gdy próbuję uruchomić zwykłą powłokę Pythona, kiedy próbuję zaimportować moduły pyspark, pojawia się ten błąd:
from pyspark import SparkContext
i mówi
"No module named pyspark".
Jak mogę to naprawić? Czy istnieje zmienna środowiskowa, którą muszę ustawić, aby wskazać Pythonowi nagłówki / biblioteki / itp.? Jeśli moja instalacja iskrowa to / spark /, które ścieżki pysparka muszę dołączyć? A może programy pyspark mogą być uruchamiane tylko z interpretera pyspark?
źródło
Odpowiedzi:
Oto prosta metoda (jeśli nie przejmujesz się tym, jak to działa !!!)
Przejdź do powłoki Pythona
zaimportuj niezbędne moduły
Gotowe!!!
źródło
Jeśli wypisze taki błąd:
Dodaj $ SPARK_HOME / python / build do PYTHONPATH:
źródło
Okazuje się, że bin pyspark ŁADUJE pythona i automatycznie ładuje prawidłowe ścieżki bibliotek. Sprawdź $ SPARK_HOME / bin / pyspark:
Dodałem tę linię do mojego pliku .bashrc i moduły są teraz poprawnie znalezione!
źródło
export SPARK_HOME=~/dev/spark-1.1.0
idź rysunek. Twoje nazwy folderów mogą się różnić.nie uruchamiaj swojego pliku py jako:
python filename.py
zamiast tego użyj:spark-submit filename.py
źródło
import pyspark
nie powiedzie się w linii poleceń lub w wykonywanym skrypcie. Musisz albo. uruchomić pyspark przez spark-submit zgodnie z przeznaczeniem lub b. dodaj $ SPARK_HOME / python do $ PYTHONPATH.Po wyeksportowaniu ścieżki SPARK i ścieżki Py4j zaczęło działać:
Jeśli więc nie chcesz ich wpisywać za każdym razem, gdy chcesz uruchomić powłokę Pythona, możesz dodać ją do swojego
.bashrc
plikuźródło
Apache Spark
instalacji, masz jakiś pomysł?libexec/python/build
służy katalog, ale Spark 1.6.2 tego nie maNa Macu używam Homebrew do zainstalowania Sparka (formuła „apache-spark”). Następnie ustawiam PYTHONPATH w ten sposób, aby import Pythona działał:
Zastąp wersję „1.2.0” aktualną wersją Apache-Spark na komputerze Mac.
źródło
Do wykonania Sparka w pyspark wymagane są dwa komponenty do współpracy:
pyspark
pakiet pythonPodczas uruchamiania rzeczy za pomocą spark-submit lub pyspark, te skrypty zajmą się obydwoma, tj. Skonfigurują PYTHONPATH, PATH itp., Aby twój skrypt mógł znaleźć pyspark, a także uruchomią instancję spark, konfigurując zgodnie z twoimi parametrami , np. --master X
Alternatywnie można ominąć te skrypty i uruchomić aplikację Spark bezpośrednio w interpreterze języka Python, takim jak
python myscript.py
. Jest to szczególnie interesujące, gdy skrypty iskier stają się bardziej złożone i ostatecznie otrzymują własne argumenty.getOrCreate()
z obiektu budującego.Twój skrypt może zatem mieć coś takiego:
źródło
Aby się go pozbyć
ImportError: No module named py4j.java_gateway
, musisz dodać następujące wiersze:źródło
W systemie Windows 10 działały u mnie następujące rozwiązania. Dodałem następujące zmienne środowiskowe za pomocą opcji Ustawienia > Edytuj zmienne środowiskowe dla Twojego konta :
(zmień „C: \ Programming \ ...” na folder, w którym zainstalowałeś Spark)
źródło
Dla użytkowników Linuksa prawidłowy (i nie zakodowany na stałe) sposób włączenia pyspark libaray do PYTHONPATH. Potrzebne są obie części PATH:
Zauważ poniżej, że wersja spakowanej biblioteki jest określana dynamicznie, więc nie kodujemy jej na stałe.
źródło
Używam klastra Spark na CentOS VM, który jest instalowany z pakietów cloudera yum.
Musiał ustawić następujące zmienne, aby uruchomić pyspark.
źródło
Oto, co zrobiłem, używając mojej dystrybucji Anaconda ze Sparkiem. To jest niezależna od wersji Spark. Możesz zmienić pierwszą linię do bin pythona użytkowników. Ponadto od Spark 2.2.0 PySpark jest dostępny jako samodzielny pakiet na PyPi, ale jeszcze go nie przetestowałem.
źródło
Możesz pobrać
pyspark path
w Pythonie używającpip
(jeśli zainstalowałeś pyspark używając PIP) jak poniżejźródło
Miałem ten sam problem.
Upewnij się również, że używasz odpowiedniej wersji Pythona i instalujesz ją z odpowiednią wersją pip. w moim przypadku: miałem zarówno Pythona 2.7, jak i 3.x. Zainstalowałem pyspark z
pip2.7 zainstaluj pyspark
i zadziałało.
źródło
Otrzymałem ten błąd, ponieważ skrypt Pythona, który próbowałem przesłać, miał nazwę pyspark.py ( facepalm ). Poprawka polegała na ustawieniu mojej PYTHONPATH zgodnie z powyższymi zaleceniami, a następnie zmianie nazwy skryptu na pyspark_test.py i wyczyszczeniu pliku pyspark.pyc, który został utworzony w oparciu o oryginalną nazwę mojego skryptu, co usunęło ten błąd.
źródło
W przypadku DSE (DataStax Cassandra & Spark) Do PYTHONPATH należy dodać następującą lokalizację
Następnie użyj dse pyspark, aby uzyskać moduły na ścieżce.
źródło
Miałem ten sam problem i dodałbym jedną rzecz do zaproponowanych powyżej rozwiązań. Używając Homebrew na Mac OS X do zainstalowania Sparka, będziesz musiał poprawić adres ścieżki py4j, aby uwzględnić libexec w ścieżce (pamiętaj o zmianie wersji py4j na tę, którą posiadasz);
źródło
py4j
tylko folderu, ale nie zadziałało. Użyj pliku zip ...W moim przypadku była to instalacja w innym pythonie dist_package (python 3.5), podczas gdy ja używałem pythona 3.6, więc poniższe pomogły:
źródło
Możesz także utworzyć kontener Docker z Alpine jako systemem operacyjnym i zainstalować Python i Pyspark jako pakiety. Dzięki temu wszystko będzie w kontenerze.
źródło