Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Crée un WindowSpec avec les limites de trame définies, de start (inclusive) à end (inclusive).
Les deux start sont end relatifs à partir de la ligne actuelle. Par exemple, 0 signifie « ligne actuelle », -1 signifie un avant la ligne actuelle, et 5 signifie cinq après la ligne actuelle.
Une limite basée sur une plage est basée sur la valeur réelle de la ORDER BY ou des expressions. Un décalage modifie la valeur de l’expression ORDER BY ( par exemple, si la valeur actuelle ORDER BY est 10 et que le décalage de limite inférieure est -3, la limite inférieure résultante est 7. En raison de cela, les images basées sur des plages nécessitent exactement une ORDER BY expression avec un type de données numérique, sauf si le décalage n’est pas lié.
Syntaxe
Window.rangeBetween(start, end)
Paramètres
| Paramètre | Type | Description |
|---|---|---|
start |
int | Début de limite, inclus. Le frame est non lié s’il s’agit Window.unboundedPrecedingd’une valeur inférieure ou égale à max(-sys.maxsize, -9223372036854775808). |
end |
int | Fin de la limite, inclusive. Le frame est non lié s’il s’agit Window.unboundedFollowingd’une valeur supérieure ou égale à min(sys.maxsize, 9223372036854775807). |
Retours
WindowSpec
Remarques
Utilisez Window.unboundedPreceding, Window.unboundedFollowinget Window.currentRow spécifiez des valeurs de 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 where the id value falls within [current id, current id + 1]
# in each category partition.
window = Window.partitionBy("category").orderBy("id").rangeBetween(Window.currentRow, 1)
df.withColumn("sum", sf.sum("id").over(window)).sort("id", "category").show()
# +---+--------+---+
# | id|category|sum|
# +---+--------+---+
# | 1| a| 4|
# | 1| a| 4|
# | 1| b| 3|
# | 2| a| 2|
# | 2| b| 5|
# | 3| b| 3|
# +---+--------+---+