In PYSPARK ist es möglich, die Zeilen im Datenrahmen mithilfe der Fensterfunktion zu partitionieren. Es ist in der erhältlich PYSPARK.sql.Fenster Modul.
Der Vorteil der Partition besteht darin, Datenkonsistenz und Gruppierung zu erreichen. Nachdem wir die Partition durchgeführt haben, können wir die Ränge in jeder Partition mit der Funktion rank () auf die Zeilen setzen.
Es ist möglich, die Zeilen in einem Datenrahmen auf der Grundlage der Werte in einer bestimmten Spalte zu partitionieren. Alle ähnlichen Werte werden also auf jede Partition gesetzt.
Rank () Fensterfunktion
Rang in PySpark ist eine Fensterfunktion, die die Ränge in den Zeilen in jeder Partition festlegt.
Der Rang beginnt von 1 und wenn Werte in zwei oder mehr Zeilen gleich sind, wird der gleiche Rang zugewiesen. Für die nächste Zeile ist der Rang jedoch die folgende Zahlenzählung aus den gebundenen Zeilen (Zeilen mit dem gleichen Rang).
Hier stammen die Werte aus der Spalte, in der wir die Spalte innerhalb angegeben haben Sortieren nach(). Basierend auf den Werten in dieser Spalte, Rang() Überprüft und weist die Rangnummer zu.
Die Hauptsache ist Rang() ist nicht direkt verfügbar. Wir müssen es aus dem importieren PYSPARK.sql.Funktionen Modul.
Syntax zum Importmodul
aus pysspark.sql.Funktionen importieren RangAndernfalls können wir dies auch mögen, um alle Methoden aus diesem Modul zu importieren.
aus pysspark.sql.Funktionen importieren *Wir müssen die folgenden Schritte befolgen, um Partition durchzuführen und Rang auf partitionierte Daten anzuwenden.
Schritte:
Syntax:
Partition = Fenster.partitionby ("Spalte").OrderBy ("Spalte") Wir können die partitionierten Daten mit der partitionierten Spalte oder einer anderen Spalte bestellen.
Nun die verwenden die über() Funktionen auf den partitionierten Zeilen können Sie die verwenden Rang() Funktion. Wir werden also eine Spalte hinzufügen, um die Zeilennummer mit der zu speichern with column () Funktion.
Syntax:
Der Name gibt hier den Zeilennamen hier an, und DataFrame_OBJ ist unser PYSPARK -Datenframe. Lassen Sie uns den Code implementieren.
Beispiel 1: Rang Technology1 von Subjekt_ID
Hier erstellen wir einen pyspark -Datenrahmen mit 5 Spalten: ['Subjekt_ID', 'Name', 'Age', 'Technology1', 'Technology2'] mit 10 Zeilen und Partition der Zeilen basierend auf Technologie1 Verwenden der Fensterfunktion.
Schließlich werden wir den Zeilen in allen Partitionen Ränge geben, indem wir eine neue Spalte namens hinzufügen RANG.
pysspark importierenAusgang:
Erläuterung
Die erste Ausgabe repräsentiert die tatsächlichen Daten im Datenrahmen. In der zweiten Ausgabe erfolgt die Partition basierend auf dem Technologie1 Spalte.
Gesamtpartitionen: 4
Partition 1:
.Das Netz trat zweimal in der ersten Partition auf. Die Werte in der Spalte Subjekt_ID sind gleich. Daher gibt die Funktion rank () für beide den gleichen Rang zurück .Nettowerte.
Partition 2:
Hadoop ereignete sich einmal in der zweiten Partition. Der Rang ist also 1.
Partition 3:
Partition 4:
PHP trat dreimal in der vierten Partition auf, und die Werte in der Spalte Subjekt_ID sind für alle gleich. Daher ist der Rang 1 für alle PHP.
Beispiel 2: Rang Technology2 von Subjekt_ID
Hier werden wir die Zeilen basierend auf verteilt Technologie2 Verwenden der Fensterfunktion. Schließlich geben wir in allen Partitionen die Zeilen basierend auf der Spalte Subjekt_ID, indem wir eine neue Spalte mit dem Namen “hinzufügen“RANG”.
(Wenn Sie den PYSPark -Datenframe nicht erstellt haben, erstellen Sie ihn mit dem ersten Beispiel.)
# Importieren Sie die FensterfunktionAusgang:
Erläuterung
Die Ausgabe repräsentiert die tatsächlichen Daten im Datenrahmen.
In der zweiten Ausgabe erfolgt die Partition basierend auf dem Technologie2 Spalte und basierend auf der Spalte Subjekt_ID bestellt.
Gesamtpartitionen: 3
Partition 1:
C# trat dreimal in der ersten Partition auf. Die ersten beiden Werte in der Spalte Subjekt_ID sind gleich. Daher gibt die Funktion rank () für die ersten beiden C#den gleichen Rang 1 zurück, und für die dritte C#beträgt der Rang 3.
Partition 2:
HTML trat zweimal in der zweiten Partition auf, und die Subjekt -ID -Werte sind für diese beiden unterschiedlich. Daher wird Rang 1 für die erste HTML zugewiesen und Rang 2 für die zweite zugewiesen.
Partition 3:
Beispiel 3: Rang Technology2 nach Alter
Hier werden wir die Zeilen basierend auf verteilt Technologie2 Verwenden der Fensterfunktion.
Schließlich werden wir in allen Partitionen die Zeilen basierend auf der Altersspalte geben, indem wir eine neue Spalte mit dem Namen "namens" hinzufügenRANG”.
(Wenn Sie den PYSPark -Datenframe nicht erstellt haben, erstellen Sie ihn mit dem ersten Beispiel.)
# Importieren Sie die FensterfunktionAusgang:
Erläuterung
Die Ausgabe repräsentiert die tatsächlichen Daten im Datenrahmen. In der zweiten Ausgabe erfolgt die Partition basierend auf dem Technologie2 Spalte und basierend auf der Altersspalte bestellt.
Gesamtpartitionen: 3
Partition 1:
C# trat dreimal in der ersten Partition auf. Und alle Werte in der Altersspalte sind unterschiedlich. Daher gibt die Rank () -Funktion die Ränge 1, 2 und 3 für drei C# -Werte zurück.
Partition 2:
HTML trat zweimal in der ersten Partition auf. Alle Werte in der Altersspalte sind unterschiedlich. Daher gibt die Rank () -Funktion die Ränge 1 und 2 für zwei HTML -Werte zurück.
Partition 3:
Abschluss
Wir haben die Partitionation der Zeilen im PYSPARK -Datenrahmen diskutiert und den Rang in jeder Partition mit der Fensterfunktion rank () festgelegt. Rang in PySpark ist eine Fensterfunktion, die die Ränge in den Zeilen in jeder Partition festlegt. Verwenden Sie diesen Befehl, während Sie diese Funktion verwenden aus pysspark.sql.Funktionen importieren Rang.