Funcția analitică F.row_number() combinată cu o specificație de fereastră Window asignează un număr secvențial incremental (începând de la 1) fiecărui rând din fiecare partiție definită.
Este cel mai utilizat tipar de inginerie a datelor pentru extragerea Top N elemente dintr-o categorie sau pentru deduplicare (păstrând doar cea mai recentă versiune a unei înregistrări pe baza unui timestamp).
Exemplu: Preluarea ultimei tranzacții efectuate de fiecare client
from pyspark.sql import functions as F
from pyspark.sql.window import Window
# Fereastră partiționată după client și ordonată descrescător după dată:
window_client = Window.partitionBy("client_id").orderBy(F.col("data_tranzactie").desc())
df_numerotat = df_tranzactii.withColumn("numar_linie", F.row_number().over(window_client))
# Filtrarea liniei 1 returnează exact ultima tranzacție per client:
df_ultima_tranzactie = df_numerotat.filter(F.col("numar_linie") == 1)
df_ultima_tranzactie.show(5)
Întrebări & Exemple de Cod:
Numerotarea Rândurilor pe Partiții cu Window și row_numberAi o nelămurire despre utilizarea comenzii
Numerotarea Rândurilor pe Partiții cu Window și row_numbersau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.