PYSPARK -Paar RDD - Transformationen

PYSPARK -Paar RDD - Transformationen
In Python ist PySpark ein Spark -Modul, das eine ähnliche Art von Verarbeitung wie Spark bietet.

RDD steht für widerstandsfähige verteilte Datensätze. Wir können RDD als grundlegende Datenstruktur in Apache Spark bezeichnen. Paar RDD speichert die Elemente/Werte in Form von Schlüsselwertpaaren. Es speichert das Schlüsselwertpaar im Format (Schlüssel, Wert).

Wir müssen RDD aus dem PySpark importieren.RDD -Modul.

In PySpark können wir also die Parallelize () -Methode verwenden, um eine RDD zu erstellen,.

Syntax:

Spark_App.SparkContext.parallelisieren (Daten)

Wo,

Daten können eine eindimensionale (lineare Daten) oder zweidimensionale (Zeilen-Säulen-Daten) sein.

RDD -Transformationen:

Eine Transformations -RDD ist eine Operation, die auf ein Paar RDD angewendet wird, um neue Daten aus dem vorhandenen Paar RDD zu erstellen. Mit Transformationen können wir das Paar RDD durch Anwenden einiger Transformationen filtern.

Lassen Sie uns die Transformationen sehen, die auf dem gegebenen Paar RDD durchgeführt werden.

Wir werden sie nacheinander besprechen.

GroupByKey

GroupByKey wird verwendet, um die Transformation auf einem Paar RDD durchzuführen, indem die Werte basierend auf dem Schlüssel gruppiert werden. Es wird alle gruppierten Werte in eine Liste gelegt, gefolgt von dem Schlüssel.

Syntax:

pairrdd_data.GroupByKey ()

Wir werden A für Schleife verwenden, um Schlüssel und Werte zu iterieren und die Werte in einer Liste mit der Funktion "List ()) zu iterieren.

Beispiel:

In diesem Beispiel haben wir ein Paar RDD erstellt - Subjekts_rating und führte GroupByKey () Transformation in Gruppenwerte in Bezug auf den Schlüssel durch. Also haben wir eine Schleife verwendet, um Schlüssel und Werte zu iterieren, und schließlich haben wir jede Schlüssel- und Wertgruppe angezeigt.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
# RDD aus PYSPARK importieren.RDD
aus pysspark.RDD Import RDD
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie 6 - Betreff- und Bewertungspaare
Subjekte_RATE = Spark_App.SparkContext.Parallelize ([('Python', 4), ('JavaScript', 2), ('Linux', 5), ('C#', 4), ('JavaScript', 4), ('Python', 3) ]))
#Apply GroupByKey () Transformation auf dem obigen Subjekts_rating -Paar RDD
Dictionary_RDD = Subjekts_rating.GroupByKey ().sammeln()
#Get die Schlüssel und alle Werte wrt zu Schlüssel aus der obigen Wörterbuch -RDD
Für Tasten werden Werte in Dictionary_RDD:
Print (Schlüssel, "->", Liste (Werte))

Ausgang:

Python -> [4, 3]
JavaScript -> [2, 4]
Linux -> [5]
C# -> [4]

In den oben genannten Probanden.

Sportfahrrad

SortByKey wird verwendet, um eine Transformation auf einem Paar RDD durchzuführen, indem ein neues Paar RDD in aufsteigender Reihenfolge zurückgegeben wird. Diese Transformation sortiert also die Elemente in Paar RDD nach Schlüssel.

Syntax:

pairrdd_data.SortbyKey ()

Beispiel:

In diesem Beispiel haben wir ein Paar RDD erstellt - Subjekts_rating und SortByKey () -Transformation, um sortierte Werte basierend auf Taste und Applied Collect () -Aktion zurückzugeben, um das sortierte Paar RDD zu erhalten.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
# RDD aus PYSPARK importieren.RDD
aus pysspark.RDD Import RDD
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie 6 - Betreff- und Bewertungspaare
Subjekte_RATE = Spark_App.SparkContext.Parallelize ([('Python', 4), ('JavaScript', 2), ('Linux', 5), ('C#', 4), ('JavaScript', 4), ('Python', 3) ]))
#Apply SortByKey () Transformation auf den obigen Themen, um die Schlüssel in aufsteigender Reihenfolge zu sortieren
drucken (Themen_rating.SortbyKey ().sammeln())
.

Ausgang:

[('C#', 4), ('JavaScript', 2), ('JavaScript', 4), ('Linux', 5), ('Python', 4), ('Python', 3)]

Wir sehen.

Redebykey

RedByKey wird verwendet, um die Transformation auf einem Paar RDD durchzuführen, indem die Daten parallelly verarbeitet werden, um die Werte mit ähnlichen Schlüssel zu kombinieren. Es wurde einige Funktionen wie Lambda () verwendet, um die Werte basierend auf dem Schlüssel zu kombinieren, indem einige Operationen in der Funktion durchgeführt wurden.

Syntax:

pairrdd_data.RedebyKey (Lambda -Funktion)

Lambda -Funktion:

Lambda Element1, Element2: Operation

Beispiel:

In diesem Beispiel haben wir ein Paar RDD erstellt - Subjekts_rating und führte eine Transformation von recordyKey () zur Durchführung durch

  1. Summe ähnlicher Werte in Bezug auf den Schlüssel
  2. Differenz ähnlicher Werte in Bezug auf den Schlüssel
  3. Multiplikation ähnlicher Werte in Bezug auf den Schlüssel
  4. Aufteilung ähnlicher Werte in Bezug auf den Schlüssel

Schließlich können wir Collect () Aktionen verwenden, um jedes transformierte Paar RDD anzuzeigen.

#Amportieren Sie das PYSPARK -Modul
pysspark importieren
#import SparkSession für die Erstellung einer Sitzung
aus pysspark.SQL Import SparkSession
# RDD aus PYSPARK importieren.RDD
aus pysspark.RDD Import RDD
#create eine App namens LinuxHint
Spark_app = SparkSession.Erbauer.AppName ('LinuxHint').Getorcreate ()
# Erstellen Sie 6 - Betreff- und Bewertungspaare
Subjekte_RATE = Spark_App.SparkContext.Parallelize ([('Python', 4), ('JavaScript', 2), ('Linux', 5), ('C#', 4), ('JavaScript', 4), ('Python', 3) ]))
#Apply reclyByKey () Transformation auf den oben genannten Probanden_rating, um Tasten durch Hinzufügen von Werten mit ähnlichen Tasten zu reduzieren
drucken (Themen_rating.RedebyKey (Lambda Element1, Element2: Element1 + Element2).sammeln())
#Apply reclyByKey () Transformation auf den obigen Probanden, um Tasten zu reduzieren, indem Werte von ähnlichen Schlüssel subtrahieren
drucken (Themen_rating.RedebyKey (Lambda Element1, Element2: Element1 - Element2).sammeln())
#Apply reclyByKey () Transformation auf den oben genannten Probanden_rating, um Tasten zu reduzieren, indem sie Werte mit ähnlichen Tasten multiplizieren
drucken (Themen_rating.RedebyKey (Lambda Element1, Element2: Element1 * Element2).sammeln())
#Apply reclyByKey () Transformation auf den oben genannten Probanden, um die Schlüssel zu reduzieren, indem die Werte mit ähnlichen Tasten geteilt werden
drucken (Themen_rating.RedebyKey (Lambda Element1, Element2: Element1 / Element2).sammeln())

Ausgang:

[('Python', 7), ('JavaScript', 6), ('Linux', 5), ('C#', 4)]
[('Python', 1), ('JavaScript', -2), ('Linux', 5), ('C#', 4)]
[('Python', 12), ('JavaScript', 8), ('Linux', 5), ('C#', 4)]
[('Python', 1.33333333333333333), ('JavaScript', 0.5), ('Linux', 5), ('C#', 4)]
Für Key-Python: Werte sind 4 und 3
Die Summe: 4+3 = 7
Der Unterschied ist: 4-3 = 1
Die Multiplikation: 4*3 = 12
Die Teilung ist: 4/3 = 1.3333
Für Schlüssel-JavaScript: Die Werte sind 2 und 4
Die Summe: 2+4 = 6
Der Unterschied ist: 2-4 = -1
Die Multiplikation: 2*4 = 8
Die Teilung ist: 2/4 = 0.5

Für Key-Linux und C#: Es gibt für jeden nur einen Wert.e.

Abschluss

Aus diesem Pair RDD -Artikel haben wir gesehen, was Transformation ist und wie man Paar RDD -Transformationen anwendet. Es gibt drei Transformationen, die wir besprochen haben: GroupByKey () wird verwendet, um alle Werte basierend auf dem Schlüssel zu kombinieren, sortByKey () gibt ein neues Paar RDD zurück, indem das Paar RDD basierend auf Tasten in aufsteigender Reihenfolge sortiert wird, und recordykey () wird Werte in Bezug auf die Werte mit Respekt kombinieren Schlüssel durch Ausführen eines Operation mit anonymen Funktionen wie Lambda -Funktion.