PySpark Tutorial - Lernen Sie Apache Spark mit Python



In diesem Blog im PySpark Tutorial erfahren Sie mehr über die PSpark-API, die für die Arbeit mit Apache Spark mithilfe der Python-Programmiersprache verwendet wird.

In einer Welt, in der Daten mit einer derart alarmierenden Rate generiert werden, ist die korrekte Analyse dieser Daten zum richtigen Zeitpunkt sehr nützlich. Apache Spark ist eines der erstaunlichsten Frameworks, um Big Data in Echtzeit zu verarbeiten und Analysen durchzuführen.Zusammen, oder PySpark ist einer der gefragtesten Zertifizierungskurse, bei denen Scala for Spark um sein Geld läuft. Also hier PySpark Tutorial Blog werde ich die folgenden Themen diskutieren:





PySpark Tutorial: Was ist PySpark?

Apache Spark ist ein schnelles Cluster-Computing-Framework, das zum Verarbeiten, Abfragen und Analysieren von Big Data verwendet wird. Da es auf In-Memory-Berechnungen basiert, hat es einen Vorteil gegenüber mehreren anderen Big-Data-Frameworks.

wie man Palindrom in Java überprüft

PySpark-Funktionen - PySpark-Tutorial - Edureka



Ursprünglich in der Programmiersprache Scala geschrieben, hat die Open Source-Community ein erstaunliches Tool zur Unterstützung von Python für Apache Spark entwickelt. PySpark unterstützt Datenwissenschaftler bei der Schnittstelle zu RDDs in Apache Spark und Python über seine Bibliothek Py4j. Es gibt viele Funktionen, die PySpark zu einem besseren Framework machen als andere:

  • Geschwindigkeit: Es ist 100-mal schneller als herkömmliche Datenverarbeitungs-Frameworks in großem Maßstab
  • Leistungsstarkes Caching: Die einfache Programmierschicht bietet leistungsstarke Caching- und Festplattenpersistenzfunktionen
  • Einsatz: Kann über Mesos, Hadoop über Yarn oder den eigenen Cluster-Manager von Spark bereitgestellt werden
  • Echtzeit: Echtzeitberechnung und geringe Latenz aufgrund von In-Memory-Berechnungen
  • Polyglot: Unterstützt die Programmierung in Scala, Java, Python und R.

Fahren wir mit unserem PySpark Tutorial-Blog fort und sehen, wo Spark in der Branche eingesetzt wird.

PySpark in der Branche

Jede Branche dreht sich um Big Data und wo es Big Data gibt, geht es um Analyse. Werfen wir also einen Blick auf die verschiedenen Branchen, in denen Apache Spark verwendet wird.



Halb ist eine der größten Branchen, die in Richtung Online-Streaming wächst. Netflix verwendet Apache Spark für die Echtzeit-Stream-Verarbeitung, um seinen Kunden personalisierte Online-Empfehlungen bereitzustellen. Es verarbeitet 450 Milliarden Ereignisse pro Tag, die an serverseitige Anwendungen weitergeleitet werden.

Finanzen ist ein weiterer Sektor, in dem die Echtzeitverarbeitung von Apache Spark eine wichtige Rolle spielt. Banken verwenden Spark, um auf die Social-Media-Profile zuzugreifen und diese zu analysieren und Erkenntnisse zu gewinnen, die ihnen helfen können, die richtigen Geschäftsentscheidungen zu treffen Kreditrisikobewertung , gezielte Anzeigen und Kundensegmentierung. Kundenabwanderung wird auch mit Spark reduziert. Entdeckung eines Betruges ist einer der am häufigsten verwendeten Bereiche des maschinellen Lernens, in denen Spark involviert ist.

Gesundheitspflege Anbieter verwenden Apache Spark, um Patientenakten analysieren zusammen mit früheren klinischen Daten, um festzustellen, bei welchen Patienten nach der Entlassung aus der Klinik gesundheitliche Probleme auftreten können. Apache Spark wird in verwendet Genomische Sequenzierung um die Zeit zu reduzieren, die für die Verarbeitung von Genomdaten benötigt wird.

Einzelhandel und E-Commerce ist eine Branche, in der man sich nicht vorstellen kann, dass sie ohne Analyse und gezielte Werbung läuft. Eine der größten E-Commerce-Plattformen von heute Alibaba führt einige der größten Spark-Jobs der Welt aus, um Petabytes an Daten zu analysieren. Alibaba tritt auf Merkmalsextraktion in Bilddaten. Ebay verwendet Apache Spark zur Bereitstellung Gezielte Angebote , das Kundenerlebnis verbessern und die Gesamtleistung optimieren.

Reise Branchen verwenden auch Apache Spark. TripAdvisor , eine führende Reise-Website, die Benutzern hilft, eine perfekte Reise zu planen, verwendet Apache Spark, um ihre Reise zu beschleunigen personalisierte Kundenempfehlungen TripAdvisor verwendet Apache Spark, um Millionen von Reisenden von zu beraten Vergleich von Hunderten von Websites um die besten Hotelpreise für seine Kunden zu finden.

Ein wichtiger Aspekt dieses PySpark-Tutorials ist zu verstehen, warum wir uns für Python entscheiden müssen. Warum nicht Java, Scala oder R?

Abonniere unseren Youtube-Kanal, um neue Updates zu erhalten ..!


Warum Python wählen?

Leicht zu lernen: Für Programmierer ist Python aufgrund seiner Syntax und Standardbibliotheken vergleichsweise einfacher zu erlernen. Darüber hinaus handelt es sich um eine dynamisch typisierte Sprache, dh RDDs können Objekte mehrerer Typen enthalten.

Eine große Auswahl an Bibliotheken: Scala verfügt nicht über ausreichende datenwissenschaftliche Tools und Bibliotheken wie Python für maschinelles Lernen und die Verarbeitung natürlicher Sprachen. Darüber hinaus fehlen Scala eine gute Visualisierung und lokale Datentransformationen.

Riesige Community-Unterstützung: Python hat eine globale Community mit Millionen von Entwicklern, die online und offline an Tausenden von virtuellen und physischen Standorten interagieren.

Eines der wichtigsten Themen in diesem PySpark-Tutorial ist die Verwendung von RDDs. Lassen Sie uns verstehen, was RDDs sind

Spark RDDs

Wenn es um iteratives verteiltes Rechnen geht, d. H. Das Verarbeiten von Daten über mehrere Jobs in Berechnungen, müssen wir Daten wiederverwenden oder zwischen mehreren Jobs teilen. Frühere Frameworks wie Hadoop hatten Probleme beim Umgang mit mehreren Operationen / Jobs wie

  • Speichern von Daten in einem Zwischenspeicher wie HDFS
  • Mehrere E / A-Jobs verlangsamen die Berechnungen
  • Replikationen und Serialisierungen, was wiederum den Prozess noch langsamer macht

RDDs versuchen, alle Probleme zu lösen, indem sie fehlertolerante verteilte In-Memory-Berechnungen ermöglichen. RDD ist die Abkürzung für Ausfallsichere verteilte Datensätze. RDD ist eine verteilte Speicherabstraktion, mit der Programmierer speichertolerante In-Memory-Berechnungen an großen Clustern durchführen können. Sie sind die schreibgeschützte Sammlung von Objekten Auf mehrere Computer verteilt, die bei Verlust einer Partition wiederhergestellt werden können. Es werden verschiedene Operationen an RDDs ausgeführt:

  • Transformationen: Transformationen erstellen einen neuen Datensatz aus einem vorhandenen. Faule Bewertung
  • Aktionen: Spark erzwingt die Berechnungen nur dann zur Ausführung, wenn Aktionen auf den RDDs aufgerufen werden

Lassen Sie uns einige Transformationen, Aktionen und Funktionen verstehen

Unterschied zwischen Geräten und erweitert

Lesen einer Datei und Anzeigen der Top n-Elemente:

rdd = sc.textFile ('Datei: /// home / edureka / Desktop / Sample') rdd.take (n)

Ausgabe:

[u'Deforestation ist das wichtigste ökologische und soziale Problem, das inzwischen mehr als nur ein mächtiger Dämon ist. Wir müssen über die Ursachen, Auswirkungen und Wege zur Lösung der Probleme Bescheid wissen, die durch die Entwaldung entstanden sind. ', u'Wir haben viele Absätze, einen langen und einen kurzen Aufsatz über Entwaldung, bereitgestellt, um Ihren Kindern und Kindern zu helfen, sich des Problems bewusst zu werden und am Aufsatzschreibwettbewerb in der Schule oder außerhalb der Schule teilzunehmen. Sie können jeden unten angegebenen Aufsatz zur Entwaldung gemäß dem Klassenstandard auswählen. Die Entwaldung ist das größte globale Problem für Gesellschaft und Umwelt.

Konvertieren in Kleinbuchstaben und Teilen: (Klein und Teilen)

def Func (lines): lines = lines.lower () lines = lines.split () return lines rdd1 = rdd.map (Func) rdd1.take (5)

Ausgabe:

[[U'deforestation 'u'is', u'arising', u'as', u'the 'u'main', u'environmental', u'and 'u'social', u'issue ', u'which', u'has ', u'now', u'taken ', ...... . . ]]

StopWords entfernen: (Filter)

stop_words = ['a', 'all', 'the', 'as', 'is', 'am', 'an', 'und', 'be', 'been', 'from', 'had' , 'Ich', 'Ich würde', 'Warum', 'Mit'] rdd2 = rdd1.filter (Lambda z: z nicht in stop_words) rdd2.take (10)

Ausgabe:

[Abholzung ', Abholzung', 'Aufbewahrung', 'Umwelt', 'soziale', 'Ausgabe', 'was', 'hat', 'jetzt', 'nicht genommen' ]]

Summe der Zahlen von 1 bis 500: (Reduzieren)

sum_rdd = sc.parallelize (Bereich (1.500)) sum_rdd.reduce (Lambda x, y: x + y)

Ausgabe::

124750

Maschinelles Lernen mit PySpark

Lassen Sie uns in unserem PySpark-Tutorial-Blog einige BasketBall-Daten analysieren und zukünftige Vorhersagen treffen. Also, hier werden wir die Basketballdaten aller Spieler von NBA seitdem verwenden 1980 [Jahr der Einführung von 3 Zeigern].

Laden von Daten:

df = spark.read.option ('header', 'true') .option ('inferSchema', 'true') .csv ('file: ///home/edureka/Downloads/season_totals.csv')

Spalten drucken:

print (df.columns)

Ausgabe:

['_c0', 'player', 'pos', 'age', 'team_id', 'g', 'gs', 'mp', 'fg', 'fga', 'fg_pct', 'fg3', ' fg3a ',' fg3_pct ',' fg2 ',' fg2a ',' fg2_pct ',' efg_pct ',' ft ',' fta ',' ft_pct ',' orb ',' drb ',' trb ',' ast ' , 'stl', 'blk', 'tov', 'pf', 'pts', 'yr']

Sortieren von Spielern (OrderBy) und toPandas:

Hier sortieren wir die Spieler nach Punkten, die in einer Saison erzielt wurden.

df.orderBy ('pts', aufsteigend = False) .limit (10) .toPandas () [['yr', 'player', 'age', 'pts', 'fg3']]

Ausgabe:

Datenbankkonnektivität in Java mit MySQL

Verwenden von DSL und matplotlib:

Hier analysieren wir die durchschnittliche Anzahl von 3 Punktversuche für jede Jahreszeit in einem Zeitlimit von 36 min [ein Intervall, das einem ungefähren vollständigen NBA-Spiel mit ausreichender Pause entspricht]. Wir berechnen diese Metrik anhand der Anzahl der 3-Punkt-Feldtorversuche (fg3a) und der gespielten Minuten (mp) und zeichnen dann das Ergebnis mit matlplotlib .

aus pyspark.sql.functions importieren Sie col fga_py = df.groupBy ('yr') .agg ({'mp': 'sum', 'fg3a': 'sum'}) .select (col ('yr'), ( 36 * col ('sum (fg3a)') / col ('sum (mp)')). Alias ​​('fg3a_p36m')) .orderBy ('yr') aus matplotlib import pyplot als plt import seaborn as sns plt.style .use ('fünfunddreißig') _df = fga_py.toPandas () plt.plot (_df.yr, _df.fg3a_p36m, color = '# CD5C5C') plt.xlabel ('Year') _ = plt.title ('Spielerdurchschnitt 3-Punkt-Versuche (pro 36 Minuten) ') plt.annotate (' 3-Zeiger eingeführt ', xy = (1980, .5), xytext = (1981, 1.1), Schriftgröße = 9, Pfeilstützen = diktieren (Gesichtsfarbe =' grau ', shrink = 0, linewidth = 2)) plt.annotate (' NBA in 3-Punkt-Linie verschoben ', xy = (1996, 2.4), xytext = (1991.5, 2.7), Schriftgröße = 9, Pfeilstützen = dict (Gesichtsfarbe) = 'grau', schrumpfen = 0, Linienbreite = 2)) plt.annotate ('NBA hat die 3-Punkt-Linie zurückbewegt', xy = (1998, 2.), xytext = (1998.5, 2.4), Schriftgröße = 9, Pfeilstützen = dict (facecolor = 'grey', shrink = 0, linewidth = 2))

Ausgabe:

Lineare Regression und VectorAssembler:

Wir können ein lineares Regressionsmodell an diese Kurve anpassen, um die Anzahl der Schussversuche für die nächsten 5 Jahre zu modellieren. Wir müssen unsere Daten mit der VectorAssembler-Funktion in eine einzelne Spalte umwandeln. Das ist ein Anforderung für die lineare Regressions-API in MLlib.

aus pyspark.ml.feature importieren VectorAssembler t = VectorAssembler (inputCols = ['yr'], outputCol = 'features') training = t.transform (fga_py) .withColumn ('yr', fga_py.yr) .withColumn ('label ', fga_py.fg3a_p36m) training.toPandas (). head ()

Ausgabe:

Gebäudemodell:

Wir erstellen dann unser lineares Regressionsmodellobjekt unter Verwendung unserer transformierten Daten.

aus pyspark.ml.regression importieren LinearRegression lr = LinearRegression (maxIter = 10) model = lr.fit (training)

Anwenden eines geschulten Modells auf einen Datensatz:

Wir wenden unser trainiertes Modellobjektmodell zusammen mit 5 Jahren zukünftiger Daten auf unser ursprüngliches Trainingsset an

aus pyspark.sql.types importieren Zeile # Modell für die Saison 1979-80 bis 2020-21 anwenden training_yrs = training.select ('yr'). rdd.map (lambda x: x [0]). collect () training_y = training.select ('fg3a_p36m'). rdd.map (lambda x: x [0]). collect () Vorhersage_yrs = [2017, 2018, 2019, 2020, 2021] all_yrs = training_yrs + Vorhersage_yrs # erstellte TestdatenFrame test_rdd = sc.parallelize (all_yrs) row = Row ('yr') & ampamplt all_years_features = t.transform (test_rdd.map (row) .toDF ()) # wende das lineare Regressionsmodell an df_results = model.transform (all_years_features) .toPandas ()

Zeichnen der endgültigen Vorhersage:

Wir können dann unsere Ergebnisse zeichnen und das Diagramm an einem bestimmten Ort speichern.

plt.plot (df_results.yr, df_results.prediction, linewidth = 2, linestyle = '-', color = '# 224df7', label = 'L2 Fit') plt.plot (training_yrs, training_y, color = '# f08080 ', label = None) plt.xlabel (' Year ') plt.ylabel (' Anzahl der Versuche ') plt.legend (loc = 4) _ = plt.title (' Durchschnittliche 3-Punkte-Versuche des Spielers (pro 36 Minuten)) ') plt.tight_layout () plt.savefig (' / home / edureka / Downloads / Images / REGRESSION.png ')

Ausgabe:

Und mit dieser Grafik kommen wir zum Ende dieses PySpark Tutorial-Blogs.

Also das ist es, Leute!

Ich hoffe, ihr habt in diesem PySpark-Tutorial-Blog eine Vorstellung davon, was PySpark ist, warum Python am besten für Spark, die RDDs und einen Einblick in maschinelles Lernen mit Pyspark geeignet ist. Herzlichen Glückwunsch, Sie sind kein Neuling mehr bei PySpark. Wenn Sie mehr über PySpark erfahren und die verschiedenen Anwendungsfälle der Branche verstehen möchten, schauen Sie sich unsere an Funken mit Python Blog.

Nachdem Sie verstanden haben, was Pyspark ist, lesen Sie die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Edurekas Python Spark-Zertifizierungstraining mit PySpark wurde entwickelt, um Ihnen die Kenntnisse und Fähigkeiten zu vermitteln, die erforderlich sind, um mit Python ein erfolgreicher Spark-Entwickler zu werden, und um Sie auf die Zertifizierungsprüfung für Cloudera Hadoop und Spark-Entwickler (CCA175) vorzubereiten.