Aller au contenu principal

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

start

int

Boundary start, inclus. Le cadre est illimité si cette valeur est Window.unboundedPreceding, ou toute valeur inférieure ou égale à -9223372036854775808.

end

int

Fin de limite, inclusive. Le cadre est illimité si c'est Window.unboundedFollowing, ou toute valeur supérieure ou égale à 9223372036854775807.

parameter

Type

Description

start

int

Boundary start, inclus. Le cadre est illimité si cette valeur est Window.unboundedPreceding, ou toute valeur inférieure ou égale à -9223372036854775808.

end

int

Fin de limite, inclusive. Le cadre est illimité si c'est Window.unboundedFollowing, ou toute valeur supérieure ou égale à 9223372036854775807.

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

Python
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|
# +---+--------+---+