jest jednym z najczęściej używanych frameworków, jeśli chodzi o obsługę i pracę z Big Data ORAZ Pyton jest jednym z najczęściej używanych języków programowania do analizy danych, uczenia maszynowego i wielu innych. Dlaczego więc nie użyć ich razem? To jest gdzie Spark z Pythonem znany również jako PySpark wchodzitheobrazek.
Przy średniej pensji w wysokości 110 000 USD rocznie dla programisty Apache Spark, nie ma wątpliwości, że Spark jest często używany w branży. Z powodujegobogaty zestaw bibliotek, Python jest używany przezthewiększość dzisiejszych analityków danych i ekspertów analitycznych. Integracja Pythona ze Sparkiem była dużym darem dla społeczności. Spark został opracowany w języku Scala, który jest bardzo podobny do języka Java. Kompiluje kod programu do kodu bajtowego dla maszyny JVM w celu iskrzenia przetwarzania dużych zbiorów danych. Aby wspierać Spark w Pythonie, społeczność Apache Spark wydała PySpark.Odkąd, jest znana jako jedna z najbardziej poszukiwanych umiejętności w całej branży ze względu na szeroki zakres korzyści, które wynikają z połączenia najlepszych cech obu tych światów.Na tym blogu Spark with Python omówię następujące tematy.
Wprowadzenie do Apache Spark
Apache Spark to platforma do przetwarzania klastrów typu open source dla platformy przetwarzanie w czasie rzeczywistym opracowany przez Apache Software Foundation. Spark zapewnia interfejs do programowania całych klastrów z niejawnym równoległość danych i odporność na uszkodzenia.
Poniżej znajdują się niektóre funkcje Apache Spark, które dają mu przewagę nad innymi frameworkami:
- Prędkość: Jest 100 razy szybszy niż tradycyjne platformy przetwarzania danych na dużą skalę.
- Potężne buforowanie: Prosta warstwa programowania zapewnia potężne możliwości buforowania i trwałości dysku.
- Rozlokowanie: Można wdrożyć za pośrednictwem Mesos, Hadoop za pośrednictwem Yarn lub własnego menedżera klastra Spark.
- Czas rzeczywisty: Czas rzeczywistyobliczenia i małe opóźnienia ze względu na obliczenia w pamięci.
- Poliglota: To jeden z najważniejszychfunkcjetego frameworka, ponieważ można go zaprogramować w Scali, Javie, Pythonie i R.
Dlaczego warto wybrać Pythona?
Chociaż Spark został zaprojektowany w scali, co sprawia, że jest prawie 10 razy szybszy niż Python, ale Scala jest szybsza tylko wtedy, gdy liczba używanych rdzeni jest mniejsza . Ponieważ większość analiz i procesów wymaga obecnie dużej liczby rdzeni, przewaga wydajnościowa Scali nie jest tak duża.
Dla programistów Python to stosunkowo łatwiejsze uczyć się ze względu na składnię i standardowe biblioteki. Co więcej, jest to plik język dynamicznie typowany, co oznacza, że RDD mogą zawierać obiekty wielu typów.
Chociaż Scala ma SparkMLlib nie ma wystarczająca liczba bibliotek i narzędzi do uczenia maszynowego i NLP cele. Ponadto Scala nie posiada wizualizacji danych.
Szkolenie PySpark | Apache Spark z Pythonem | Edureka
Zasubskrybuj nasz kanał YouTube, aby otrzymywać nowe aktualizacje ..!
Konfigurowanie platformy Spark w Pythonie (PySpark)
Mam nadzieję, że wiecie, jak to zrobić .Więc kiedy już będziesz rozpakowany iskrownik, zainstalowany i dodał ścieżkę do .bashrc plik, musisz wpisaćźródło .bashrc
export SPARK_HOME = /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7 export PATH = $ PATH: /usr/lib/hadoop/spark-2.1.0-bin-hadoop2.7/bin
Aby otworzyć powłokę pyspark, musisz wpisać polecenie./bin/pyspark
Iskra w przemyśle
Apache Spark ze względu na niesamowite funkcje, takie jak przetwarzanie w pamięci , poliglota i szybkie przetwarzanie są używane przez wiele firm na całym świecie do różnych celów w różnych branżach:
Wieśniak wykorzystuje Apache Spark do swoich możliwości uczenia maszynowego do personalizowania swoich wiadomości, stron internetowych, a także do reklam docelowych. Używają Spark z Pythonem, aby dowiedzieć się, jakiego rodzaju wiadomości - użytkownicy są zainteresowani czytaniem i kategoryzowaniem wiadomości, aby dowiedzieć się, jacy użytkownicy byliby zainteresowani czytaniem poszczególnych kategorii wiadomości.
co to jest pojo w java
TripAdvisor korzysta z Apache Spark, aby udzielać porad milionom podróżnych, porównując setki witryn internetowych w celu znalezienia najlepszych cen hoteli dla swoich klientów. Czas potrzebny na przeczytanie i przetworzenie recenzji hoteli w czytelnym formacie odbywa się za pomocą Apache Spark.
Jedna z największych platform handlu elektronicznego na świecie Alibaba uruchamia jedne z największych zleceń Apache Spark na świecie w celu analizy setek petabajtów danych na swojej platformie e-commerce.
PySpark SparkContext i przepływ danych
Mówiąc o Sparku z Pythonem, praca z RDD jest możliwa dzięki bibliotece Py4j. PySpark Shell łączy interfejs API Pythona z funkcją Spark Core i inicjalizuje kontekst Spark. Spark Context jest sercem każdej aplikacji iskrowej.
- Kontekst Spark konfiguruje usługi wewnętrzne i nawiązuje połączenie ze środowiskiem wykonawczym Spark.
- Obiekt sparkcontext w programie sterownika koordynuje cały proces rozproszony i umożliwia alokację zasobów.
- Menedżerowie klastrów zapewniają wykonawcom, czyli procesom JVM, logikę.
- Obiekt SparkContext wysyła aplikację do modułów wykonawczych.
- SparkContext wykonuje zadania w każdym module wykonawczym.
Przypadek użycia PySpark KDD
Przyjrzyjmy się teraz przykładowi użycia Puchar KDD'99 (Międzynarodowy konkurs narzędzi do odkrywania wiedzy i eksploracji danych).Tutaj weźmiemy ułamek zbioru danych, ponieważ oryginalny zestaw danych jest zbyt duży
import urllib f = urllib.urlretrieve ('http://kdd.ics.uci.edu/databases/kddcup99/kddcup.data_10_percent.gz', 'kddcup.data_10_percent.gz')
TWORZENIE RDD:
Teraz możemy użyć tego pliku do stwórz nasz RDD .
data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file)
FILTRACJA:
Załóżmy, że chcemy policzyć, ile normalnych. interakcje, które mamy w naszym zbiorze danych. Możemy filtr nasz RDD raw_data w następujący sposób.
normal_raw_data = raw_data.filter (lambda x: 'normal.' in x)
LICZYĆ:
Teraz możemy liczyć ile elementów mamy w nowym RDD.
od czasu importu czas t0 = time () normal_count = normal_raw_data.count () tt = time () - t0 print 'Istnieją {}' normalne 'interakcje'.format (normal_count) print' Zliczanie zakończone za {} sekund'.format (okrągły (tt, 3))
Wynik:
Istnieje 97278 „normalnych” interakcji. Licznik ukończony w 5,951 sekund
MAPOWANIE:
W tymwalizkachcemy czytać nasz plik danych w formacie CSV. Możemy to zrobić, stosując funkcję lambda do każdego elementu w RDD w następujący sposób. Tutaj użyjemy map () i take () transformacja.
from pprint import pprint csv_data = raw_data.map (lambda x: x.split (',')) t0 = time () head_rows = csv_data.take (5) tt = time () - t0 print 'Analiza zakończona za {} sekund '.format (round (tt, 3)) pprint (head_rows [0])
Wynik:
Analiza ukończona w 1.715 sekund [u'0 ', u'tcp', u'http ', u'SF', u'181 ', u'5450', u'0 ', u'0',. . u'normal. ']
ROZDZIELAĆ:
Teraz chcemy mieć każdy element w RDD jako parę klucz-wartość, gdzie kluczem jest tag (np. normalna ), a wartością jest cała lista elementów reprezentujących wiersz w pliku w formacie CSV. Moglibyśmy postępować w następujący sposób. Tutaj używamy line.split () i map ().
def parse_interaction (line): elems = line.split (',') tag = elems [41] return (tag, elems) key_csv_data = raw_data.map (parse_interaction) head_rows = key_csv_data.take (5) pprint (head_rows [0] )
Wynik: (u'normal. ', [u'0', u'tcp ', u'http', u'SF ', u'181', u'5450 ', u'0', u'0 ', u' 0,00 ', u'1,00', .... U'normal. '])
AKCJA ZBIERANIA:
Tutaj użyjemy akcji collect (). Zapisuje do pamięci wszystkie elementy RDD. Z tego powodu należy go używać ostrożnie podczas pracy z dużymi RDD.
t0 = time () all_raw_data = raw_data.collect () tt = time () - t0 print 'Dane zebrane w {} sekundach'. format (round (tt, 3))
Wynik:
Dane zebrane w 17,927 sekund
Oczywiście zajęło to więcej czasu niż każda inna czynność, której używaliśmy wcześniej. Każdy węzeł roboczy Spark, który ma fragment RDD, musi być skoordynowany, aby pobrać jego część, a następnie wszystko razem zredukować.
Jako ostatni przykład łączący wszystkie poprzednie, chcemy zebrać wszystkie plikinormalna
interakcje jako pary klucz-wartość.
# pobierz dane z pliku data_file = './kddcup.data_10_percent.gz' raw_data = sc.textFile (data_file) # przeanalizuj w pary klucz-wartość key_csv_data = raw_data.map (parse_interaction) # filter normalne interakcje z kluczami normal_key_interactions = key_csv_data.file lambda x: x [0] == 'normal.') # collect all t0 = time () all_normal = normal_key_interactions.collect () tt = time () - t0 normal_count = len (all_normal) print 'Dane zebrane w {} sekundach '.format (round (tt, 3)) print' Istnieją {} 'normalne' interakcje'.format (normal_count)
Wynik:
Dane zebrane w ciągu 12,485 sekund. Istnieje 97278 normalnych interakcji
Więc to jest to, chłopaki!
Mam nadzieję, że podobał Ci się blog Spark z Pythonem. Jeśli to czytasz, Gratulacje! Nie jesteś już nowicjuszem w PySpark. Wypróbuj teraz ten prosty przykład w swoich systemach.
Teraz, gdy znasz już podstawy PySpark, zapoznaj się z autorstwa Edureka, zaufanej firmy zajmującej się edukacją online, z siecią ponad 250 000 zadowolonych uczniów rozsianych po całym świecie. Edureka's Szkolenie certyfikacyjne Python Spark przy użyciu PySpark ma na celu zapewnienie wiedzy i umiejętności, które są wymagane, aby zostać odnoszącym sukcesy programistą Spark korzystającym z języka Python i przygotować Cię do egzaminu certyfikacyjnego Cloudera Hadoop i Spark Developer (CCA175).
Masz do nas pytanie? Wspomnij o tym w sekcji komentarzy, a my skontaktujemy się z Tobą.