Samouczek PySpark dla początkujących [z przykładami]

Opublikowany: 2020-10-07

PySpark to platforma w chmurze działająca jako architektura usług. Platforma zapewnia środowisko do obliczania plików Big Data. PySpark odnosi się do zastosowania języka programowania Python w połączeniu z klastrami Spark. Jest głęboko związany z Big Data. Poinformuj nas najpierw krótko, czym zajmuje się Big Data i zapoznaj się z samouczkiem PySpark .

Spis treści

Do czego służy PySpark?

Jako interfejs API języka Python dla platformy Spark wydany przez społeczność Apache Spark obsługuje język Python z platformą Spark. Czytaj dalej ten artykuł na temat samouczka Spark w Pythonie , aby dowiedzieć się więcej o zastosowaniach.

  • Za pomocą PySpark można zintegrować i wydajnie pracować z Resilient Distributed Datasets (RDD) w Pythonie.
  • Liczne funkcje sprawiają, że PySpark jest doskonałym frameworkiem, ponieważ ułatwia pracę z ogromnymi zestawami danych.
  • PySpark udostępnia biblioteki o szerokim zakresie, a uczenie maszynowe i analiza strumieniowania w czasie rzeczywistym są łatwiejsze dzięki PySpark.
  • PySpark wykorzystuje prostotę Pythona i moc Apache Spark do oswajania Big Data.
  • Wraz z nadejściem Big Data rozwinęła się moc technologii takich jak Apache Spark i Hadoop.
  • Analityk danych może wydajnie obsługiwać duże zbiory danych, będąc w zasięgu każdego programisty Pythona.

Przeczytaj: Dataframe w Apache PySpark

Koncepcje Big Data w Pythonie

Python to język programowania wysokiego poziomu, który ujawnia również wiele paradygmatów programowania, takich jak programowanie obiektowe (OOP), programowanie asynchroniczne i funkcjonalne.

Programowanie funkcjonalne jest ważnym paradygmatem w przypadku Big Data. Podąża za kodem równoległym, co oznacza, że ​​możesz uruchomić swój kod na kilku procesorach, a także na zupełnie różnych maszynach. Ekosystem PySpark ma moc pozwalającą na użycie funkcjonalnego kodu i dystrybucję go w klastrze komputerów.

Podstawowe idee programowania funkcjonalnego dla programistów są dostępne w standardowej bibliotece i wbudowanych elementach Pythona.

Manipulacja danymi za pomocą funkcji bez zewnętrznej obsługi stanu jest głównym ucieleśnieniem idei programowania funkcjonalnego. Oznacza to, że Twój kod omija zmienne globalne i nie manipuluje danymi w miejscu, ale zawsze zwraca nowe dane. Python używa słowa kluczowego lambda do ujawnienia funkcji anonimowych.

Zapoznaj się z kursem certyfikacyjnym z zakresu nauki o danych z najlepszych uniwersytetów na świecie. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Niektóre kluczowe cechy PySpark

  • Polyglot: PySpark to jeden z najbardziej znaczących frameworków do obliczeń za pomocą ogromnych zbiorów danych. Jest również kompatybilny z wieloma językami.
  • Trwałość dysku i buforowanie: Framework PySpark zapewnia imponującą trwałość dysku i potężne buforowanie.
  • Szybkie przetwarzanie: W porównaniu z innymi tradycyjnymi frameworkami używanymi do przetwarzania Big Data, framework PySpark jest dość szybki.
  • Działa dobrze z RDD: Python jest dynamicznie wpisywany dla języka programowania, co pomaga w pracy z Resilient Distributed Datasets.

Co to jest PySpark?

Ten samouczek PySpark pozwoli Ci zrozumieć, czym jest PySpark. PySpark to interfejs programowania aplikacji Python (API). Interfejs API jest napisany w Pythonie, aby utworzyć połączenie z Apache Spark. Jak wiecie, Apache Spark zajmuje się analizą big data. Do tworzenia Apache Spark używany jest język programowania Scala. Można go zintegrować z innymi językami programowania, a mianowicie Python, Java, SQL, R i samą Scala.

PySpark opiera się na dwóch zestawach potwierdzeń:

  • PySpark API: Ma wiele próbek.
  • Spark Scala API: w przypadku programów PySpark tłumaczy kod Scala, który sam w sobie jest bardzo czytelnym i opartym na pracy językiem programowania, na kod Pythona i czyni go zrozumiałym.

Py4J daje programowi Pythona swobodę komunikowania się za pomocą kodu opartego na JVM. Pomaga PySpark podłączyć się do interfejsu programowania aplikacji opartego na Spark Scala.

Jak ustawić środowisko PySpark

Porozmawiajmy teraz o różnych środowiskach, w których PySpark zaczyna się i jest stosowany. Postępuj zgodnie z tym samouczkiem Spark w Pythonie , aby ustawić PySpark:

  • Self Hosted: W takim przypadku możesz samodzielnie skonfigurować kolekcję lub zgrupować. W takim środowisku możesz użyć klastrów metalowych lub wirtualnych. Istnieje kilka proponowanych projektów, a mianowicie Apache Ambari, które mają zastosowanie do tego celu. Jednak ten proces nie jest wystarczająco szybki.
  • Dostawcy chmury: w tym przypadku najczęściej używane są klastry Spark. To środowisko działa szybciej niż samoobsługa. Amazon Web Services (AWS) ma Electronic MapReduce (EMR), podczas gdy Good Clinical Practice (GCP) ma Dataproc.
  • Rozwiązania dla dostawców: Databricks i Cloudera dostarczają rozwiązania Spark. Jest to jeden z najszybszych sposobów na uruchomienie PySpark.

Programowanie PySpark

Jak wszyscy wiemy, Python jest językiem wysokiego poziomu, posiadającym kilka bibliotek. Odgrywa bardzo istotną rolę w uczeniu maszynowym i analizie danych. Dlatego PySpark jest interfejsem API dla Sparka napisanym w Pythonie. Spark ma kilka doskonałych atrybutów, takich jak duża szybkość, łatwy dostęp i zastosowanie do analizy strumieniowej. Oprócz tego framework Spark i Python pomaga PySpark w łatwym dostępie do dużych zbiorów danych i ich przetwarzaniu.

Poniżej omówiono podstawowe informacje o samouczku Spark w języku Python .

Resilient Distributed Datasets (RDD): Resilient Distributed Datasets lub RDD są jednym z podstawowych elementów konstrukcyjnych architektury programowania PySpark. Ta kolekcja jest niezmienna i ulega słabym przekształceniom. Każde słowo tego skrótu ma znaczenie. Jest odporny, ponieważ może dopuszczać błędy i na nowo odkrywać dane. Jest rozproszony, ponieważ rozszerza się na różne inne węzły w kępie. Dataset oznacza przechowywanie danych wartości.

Przeczytaj także: Najczęstsze pytania do wywiadów PySpark

RDD obsługuje przede wszystkim następujące rodzaje operacji

1) Transformacje: Transformacje zgodne z zasadą Lazy Evaluations, pozwalają na operowanie wykonaniami poprzez wywołanie akcji na danych w dowolnym momencie. Niewiele z transformacji to mapa, płaska mapa, filtr, odróżnienie, redukcja według klucza, partycje mapy, według których są dostarczane przez RDD.

2) Akcje: Operacje RDD pozwalają PySpark na zastosowanie obliczeń, przekazując wynik z powrotem do sterownika, co nazywa się akcjami.

Kroki, aby przekonwertować wielkie litery na małe i podzielić ciąg

Dane wyjściowe funkcji podziału są typu listy. Aby użyć funkcji join, format to „.join (sekwencyjny typ danych)” Z powyższym kodem:

Wejście: dzielenie i łączenie ciągów

Wyjście: dzielenie i łączenie ciągów

Jak czytać plik?

Przeczytaj plik w Pythonie, wywołując plik .txt w „trybie odczytu”(r).

Krok 1) Otwórz plik w trybie odczytu

f=open("przykład.txt", "r")

Krok 2) Używamy funkcji trybu w kodzie, aby sprawdzić, czy plik jest w trybie otwartym.

f.mode == 'r':

Krok 3) Użyj f.read, aby odczytać dane pliku i zapisać je w zmiennej zawartości

zawartość = f.odczyt()

Kroki w analizie predykcyjnej:

  1. Eksploracja danych: musisz zebrać dane, przesłać je i określić typ danych, ich rodzaj i wartość.
  2. Czyszczenie danych: musisz znaleźć wartości null, brakujące wartości i inne nadmiarowości, które mogą utrudniać działanie programu.
  3. Modelowanie: Musisz wybrać model predykcyjny.
  4. Ocena: Musisz sprawdzić dokładność swojej analizy.

Transmisja strumieniowa PySpark

PySpark Streaming to nic innego jak rozszerzalny, bezbłędny system. Przestrzega interwałów wsadowych RDD od 500 ms do wyższych przedziałów czasowych. Zgodnie z samouczkiem Spark Python , Spark Streaming otrzymuje pewne dane przesyłane strumieniowo jako dane wejściowe.

W zależności od liczby interwałów partii RDD te przesyłane strumieniowo dane są dzielone na wiele partii i wysyłane do silnika Spark. Niektóre źródła, z których odbierane są przesyłane strumieniowo dane, to Kinesis, Kafka, Apache Flume itp. Używając struktur danych i algorytmów, silniki Spark mogą pobierać dane. Następnie pobrane dane są przekazywane do różnych systemów plików i baz danych.

Jak wspomniano wcześniej, PySpark to API wysokiego poziomu. Pomimo wystąpienia jakiejkolwiek awarii, operacja przesyłania strumieniowego zostanie wykonana tylko raz. Jednym z głównych elementów rozpraszających PySpark Streaming jest Discretized Stream. Te komponenty strumieniowe są również budowane za pomocą partii RDD. MLib, SQL, Dataframes są używane do poszerzenia szerokiego zakresu operacji dla Spark Streaming.

W tym samouczku PySpark dowiesz się, że Spark Stream pobiera wiele danych z różnych źródeł. Jest to możliwe, ponieważ wykorzystuje złożone algorytmy, które zawierają wysoce funkcjonalne komponenty — Map, Reduce, Join i Window.

To są rzeczy, które podsumowują to, czym jest PySpark Streaming. Teraz w tym samouczku Spark w Pythonie porozmawiajmy o niektórych zaletach PySpark.

Zalety PySpark

Segment ten można podzielić na dwie części. Po pierwsze poznasz zalety korzystania z Pythona w PySpark, a po drugie zalety samego PySpark.

  • Będąc językiem wysokiego poziomu i przyjaznym dla programistów, jest łatwy do nauczenia się i wykonywania.
  • Można użyć prostego i inkluzywnego interfejsu API.
  • Python daje czytelnikowi doskonałą możliwość wizualizacji danych.
  • Python posiada szeroką gamę bibliotek. Niektóre przykłady to Matplotlib, Pandas, Seaborn, NumPy itp.

Oto cechy samouczka PySpark :

  • PySpark Streaming łatwo integruje inne języki programowania, takie jak Java, Scala i R.
  • PySpark ułatwia programistom wykonywanie kilku funkcji za pomocą Resilient Distributed Datasets (RDD)
  • PySpark jest preferowany nad innymi rozwiązaniami Big Data ze względu na szybkie, potężne mechanizmy przechwytywania i trwałe na dysku do przetwarzania danych.

Musisz przeczytać: samouczek Pythona dla początkujących

Włączenie nauki o danych i uczenia maszynowego do PySpark

Będąc wysoce funkcjonalnym językiem programowania, Python jest podstawą nauki o danych i uczenia maszynowego. Dlatego nie jest niespodzianką, że Data Science i ML są integralnymi częściami systemu PySpark. Biblioteka uczenia maszynowego (MLib) to operator, który kontroluje funkcjonalność uczenia maszynowego w PySpark.

Oto zalety korzystania z uczenia maszynowego w PySpark:

  • Jest bardzo rozciągliwy.
  • Pozostaje funkcjonalny w systemach rozproszonych.

Główne funkcje uczenia maszynowego w PySpark:

  • Machine Learning przygotowuje różne metody i umiejętności do prawidłowego przetwarzania danych. Są to transformacja, ekstrakcja, haszowanie, selekcja itp.
  • Zapewnia pewne złożone algorytmy, jak wspomniano wcześniej. Służą one do przetwarzania danych z różnych źródeł.
  • Wykorzystuje pewną interpretację matematyczną i dane statystyczne. Obejmuje algebrę liniową i procesy oceny modeli.

Wniosek

W tym samouczku omówiliśmy kluczowe funkcje, ustawianie środowiska, czytanie pliku i inne.

Jeśli jesteś zainteresowany nauką o danych, sprawdź program IIIT-B i upGrad Executive PG w dziedzinie Data Science, który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z ekspertami z branży, 1 -on-1 z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.

Co to jest PySpark?

PySpark powstał w celu promowania współpracy Apache Spark z Pythonem. Ta współpraca zapewnia interfejs API języka Python dla platformy Spark. Ponadto PySpark umożliwia użytkownikom interakcję z Resilient Distributed Datasets (RDD) w Apache Spark i Python. PySpark umożliwia użytkownikom szybką integrację i interakcję z RDD w języku programowania Python. Istnieje kilka cech, które sprawiają, że PySpark jest tak doskonałym narzędziem do pracy z dużymi zestawami danych. Inżynierowie danych korzystają z tego narzędzia, aby wykonywać obliczenia na ogromnych zestawach danych lub po prostu je badać. Osiąga się to dzięki wykorzystaniu biblioteki Py4j.

Jakie są rzeczywiste przypadki użycia PySpark?

PySpark jest obecnie używany do przesyłania strumieniowego ETL. Streaming ETL stale czyści i agreguje dane przed ich dostarczeniem do magazynu danych. PySpark pomaga we wzbogacaniu danych, wzbogacając dane na żywo, integrując je z danymi statycznymi, umożliwiając firmom przeprowadzanie bardziej kompleksowej analizy danych w czasie rzeczywistym. Pyspark jest również używany do wykrywania wyzwalaczy. Wyzwalacze są wykorzystywane przez organizacje finansowe do wykrywania nieuczciwych transakcji i zatrzymywania ich w ich śladach. Wyzwalacze są również używane w szpitalach do identyfikowania potencjalnie szkodliwych zmian zdrowotnych podczas monitorowania parametrów życiowych pacjenta, zapewniając automatyczne powiadomienia odpowiednim opiekunom, którzy mogą następnie podjąć szybkie i niezbędne działania.

Czy Python i PySpark są powiązane?

PySpark jest wynikiem partnerstwa Apache Spark i Python. Python to uniwersalny język programowania wysokiego poziomu, podczas gdy Apache Spark to platforma klastrowa typu open source, która koncentruje się na szybkości, łatwości obsługi i analizie strumieniowej. Oferuje zróżnicowany zestaw bibliotek i jest używany głównie do uczenia maszynowego i analizy strumieniowej w czasie rzeczywistym. Oznacza to, że jest to Pythonowe API dla Sparka, które pozwala okiełznać Big Data, łącząc prostotę Pythona z mocą Apache Spark.