Der Rang beginnt von 1 und wenn Werte in zwei oder mehr Zeilen gleich sind, wird der gleiche Rang zugewiesen.
Hier stammen die Werte aus der Spalte, in der wir die Spalte in OrderBy () angegeben haben. Basierend auf den Werten in dieser Spalte prüft Dense_Rank () die Werte und weist die Rangnummer zu.
Die Hauptsache ist, dass Dense_rank () nicht direkt verfügbar ist. Wir müssen es aus dem importieren PYSPARK.sql.Funktionen Modul.
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. Nach der Ausführung der Partition können wir die Ränge in jeder Partition mit der Funktion Dense_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.
Wir müssen die folgenden Schritte ausführen, um die Dense_Rank auf partitionierte Daten zu partitionieren und anzuwenden:
Schritte:
Lassen Sie uns den Code implementieren.
Beispiel 1
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 mit dem Namen “hinzufügen“Dichter 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 Dense_rank () den gleichen Rang-1 für beide zurück .Nettowerte.
Partition 2:
Hadoop ereignete sich einmal in der zweiten Partition. Der Rang ist also 1.
Partition 3:
Oracle trat viermal in der Dritten Partition auf.
Für die ersten beiden Orakel sind die Subjekt-ID-Werte gleich, so dass für beide Rang-1 zugewiesen wird.
Für das dritte Orakel ist der Rang 2.
Für das letzte Orakel ist der Rang 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
Mit der Fensterfunktion werden wir hier die Zeilen basierend auf verteilt Technologie2.
Schließlich werden wir die Zeilen basierend auf der Spalte von Subjekt_ID in allen Partitionen einstufen, indem wir eine neue Spalte mit dem Namen “hinzufügen“Dichter 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. Auch die ersten beiden Werte in der Spalte Subjekt_ID sind gleich. Daher gibt die Funktion Dense_rank () für die ersten beiden C#den gleichen Rang-1 zurück, und für die dritte C#ist der Rang 2.
Partition 2:
HTML trat zweimal in der zweiten Partition auf, und die Subjekt -ID -Werte sind für diese beiden unterschiedlich. Daher ist Rang-1 für das erste HTML zugewiesen und Rang-2 für die zweite zugewiesen.
Partition 3:
Tests traten fünfmal in der Dritten Partition auf.
Für die ersten beiden Tests sind die Subjekt-ID-Werte gleich, so dass für beide Rang-1 zugewiesen wird.
Für die dritten Tests beträgt der Rang 2.
Für die letzten Tests betrug der Rang 3.
Beispiel 3
Mit der Fensterfunktion werden wir hier die Zeilen basierend auf verteilt Technologie2.
Schließlich werden wir die Zeilen basierend auf der Altersspalte in allen Partitionen einstufen, indem wir eine neue Spalte mit dem Namen “hinzufügen“Dichter 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 wird die Partition basierend auf der Spalte Technology2 durchgeführt und auf der Altersspalte geordnet.
Gesamtpartitionen: - 3
Partition 1:
C# trat dreimal in der ersten Partition auf. Alle Werte in der Altersspalte sind unterschiedlich. Daher gibt die Funktion Dense_rank () die Rang 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 Funktion Dense_rank () die Ränge 1 und 2 für zwei HTML -Werte zurück.
Partition 3:
Tests traten fünfmal in der Dritten Partition auf.
Für die ersten drei Testwerte sind die Alterswerte gleich. Für drei wird Rang-1 also zugewiesen.
Die Alterswerte für den vierten und fünften Test sind gleich, so dass Rang-2 beides gegeben wird.
Abschluss
Wir haben die Partitionation der Zeilen im PYSPARK -Datenrahmen diskutiert und den Rang in jeder Partition mit der Fensterfunktion dense_rank () festgelegt. Dense_rank 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.