rowsBetween (Fenêtre)
Crée un WindowSpec avec les limites d’image définies, de start (inclus) à end (inclus).
Les deux start et end sont des positions relatives par rapport à la ligne actuelle. Par exemple, 0 signifie « ligne actuelle », -1 signifie la ligne avant la ligne actuelle, et 5 signifie la cinquième ligne après la ligne actuelle.
Une limite basée sur les lignes est basée sur la position de la ligne dans la partition. Un décalage indique le nombre de lignes au-dessus ou en dessous de la ligne actuelle où le cadre start ou se termine.
Syntaxe
Window.rowsBetween(start, end)
parameter
parameter | Type | Description |
|---|---|---|
| int | Boundary start, inclus. Le cadre est illimité si cette valeur est |
| int | Fin de limite, inclusive. Le cadre est illimité si c'est |
Renvoie
WindowSpec
Notes
Utilisez Window.unboundedPreceding, Window.unboundedFollowing et Window.currentRow pour spécifier des valeurs limites spéciales plutôt que d'utiliser directement des valeurs intégrales.
Exemples
from pyspark.sql import Window, functions as sf
df = spark.createDataFrame(
[(1, "a"), (1, "a"), (2, "a"), (1, "b"), (2, "b"), (3, "b")], ["id", "category"])
# Calculate the sum of id from the current row to current row + 1 in each category partition.
window = Window.partitionBy("category").orderBy("id").rowsBetween(Window.currentRow, 1)
df.withColumn("sum", sf.sum("id").over(window)).sort("id", "category", "sum").show()
# +---+--------+---+
# | id|category|sum|
# +---+--------+---+
# | 1| a| 2|
# | 1| a| 3|
# | 1| b| 3|
# | 2| a| 2|
# | 2| b| 5|
# | 3| b| 3|
# +---+--------+---+