So führen Sie mehrere Zeilen mit gemeinsamer ID zu einer einzigen Zeile zusammen (PYSPARK)

Alessio Iannini

Ich habe diesen Datenrahmen in PySpark. Ich möchte eindeutige Werte für col3 erhalten. In SQL würde ich nach col1 gruppieren und max(col3) als col3 erhalten

+----+----+----+ |col1|col2|col3| +----+----+----+ | 0| 1| 0| | 0| 1| 0| | 0| 1| 0| | 1| 1| 0| | 1| 1| 1| | 1| 1| 1| | 2| 1| 0| | 2| 1| 1| | 2| 1| 0| +----+----+----+

Dies ist die erwartete Ausgabe:

+----+----+----+ |col1|col2|col3| +----+----+----+ | 0| 1| 0| | 1| 1| 1| | 2| 1| 1| +----+----+----+

Shu

Sie können dieselbe Logik in pyspark .groupBy auf col1,col2 ausführen und dann agg den maximalen col3-Wert abrufen.

  • Eine andere Möglichkeit wäre, die Fensterfunktion row_numberund partitionbycol1,col2 und orderby desccol3 zu verwenden und nur die auszuwählenrownumber == 1

Example:

df.show()
#+----+----+----+
#|col1|col2|col3|
#+----+----+----+
#|   0|   1|   0|
#|   0|   1|   0|
#|   0|   1|   0|
#|   1|   1|   0|
#|   1|   1|   1|
#|   1|   1|   1|
#|   2|   1|   0|
#|   2|   1|   1|
#|   2|   1|   0|
#+----+----+----+

df.groupBy("col1","col2").agg(max("col3").alias("col3")).orderBy("col3").show()
#+----+----+----+
#|col1|col2|col3|
#+----+----+----+
#|   0|   1|   0|
#|   1|   1|   1|
#|   2|   1|   1|
#+----+----+----+

Using row_number():

from pyspark.sql.window import Window

w = Window.partitionBy("col1","col2").orderBy(desc("col3"))

df.withColumn("rn", row_number().over(w)).filter(col("rn") == 1).drop("rn").orderBy("col3").show()
#+----+----+----+
#|col1|col2|col3|
#+----+----+----+
#|   0|   1|   0|
#|   1|   1|   1|
#|   2|   1|   1|
#+----+----+----+

Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.

Bei Verstößen wenden Sie sich bitte [email protected] Löschen.

bearbeiten am
0

Lass mich ein paar Worte sagen

0Kommentare
LoginNach der Teilnahme an der Überprüfung

Verwandte Artikel

Wie füge ich mehrere Zeilen mit gemeinsamer ID zu einer einzigen Zeile (HQL) zusammen?

So führen Sie Zeilen mit einer paarweisen Beziehung in SQL zu einer einzigen Zeile zusammen

Führen Sie mehrere Zeilen mit derselben ID zu einer Zeile zusammen

So führen Sie in Oracle mehrere Zeilen zu einer einzigen zusammen

So führen Sie mehrere Zeilen zu einer Zeile zusammen, basierend auf einer Spalte mit einem bestimmten Wert in Pandas

Führen Sie mehrere Zeilen zu einer Zeile zusammen

So rollen Sie mehrere Zeilen zu einer einzigen Zeile und Spalte zusammen

So führen Sie mehrere Zeilen zu einer einzigen Zeile zusammen, jedoch nur für Zeilenblöcke, die durch Leerzeilen getrennt sind

So führen Sie mehrere Typoskript-Definitionsdateien mit einem Modul zu einer einzigen Datei zusammen

SQL führt mehrere Zeilen mit einem eindeutigen Schlüssel zu einer einzigen Zeile zusammen

So führen Sie alle 3 Zeilen eines Datenrahmens zu einer Zeile zusammen (mit 3 Spalten)

So führen Sie Zeilen mit Trennzeichen zu einer Zeile zusammen

So kombinieren Sie mehrere Zeilen mit Pandas zu einer einzigen Zeile

Führen Sie mehrere Zeilen mit Python-Pandas zu einer Zeile in einer CSV-Datei zusammen

Führen Sie mehrere Zeilen (mit einigen Nicht-Zeichenfolgenwerten) mit derselben ID in einer begrenzten Zeile in Pandas zusammen

So führen Sie die Zeilen eines Tibbles zusammen, um Zellen zu einer einzigen zusammenzufassen

So führen Sie zwei Zeilen mit einem unterschiedlichen Feldwert zu einer Zeile mit verkettetem Feld zusammen

Gruppieren Sie nach und führen Sie mehrere Zeilen zu einer Zeile zusammen

Führen Sie mit ng-repeat mehrere Zeilen in einer Zeile zusammen und zeigen Sie sie an

Wie füge ich mehrere Zeilen zu einer einzigen Zeile für eine einzelne Spalte zusammen?

So führen Sie mit Python mehrere Bilder diagonal zu einem einzigen zusammen

So führen Sie mit PHP mehrere Arrays zu einem einzigen Array zusammen

Führen Sie mit awk / sed mehrere Linien zwischen demselben Muster zu einer einzigen Linie zusammen

Führen Sie Zeilen mit demselben Wert in einer Spalte zu einer einzelnen Zeile in einem Datenrahmen zusammen

So führen Sie 10 Sammlungen (mit derselben Struktur) zu einer einzigen Sammlung zusammen

Führen Sie mehrere Zeilen zu einer mit mehr als einem Zeilenwert in einer Spalte zusammen

So führen Sie zwei bestimmte Zeilen zu einer Zeile zusammen

Führen Sie mehrere Zeilen in SQL zu einer zusammen

Wie füge ich zwei Zeilen mit denselben Werten in Python zu einer einzigen Zeile zusammen?