rowsBetween (Venster)

Hiermee maakt u een WindowSpec met de framegrenzen die zijn gedefinieerd, van start (inclusief) tot end (inclusief).

Beide start en end zijn relatieve posities uit de huidige rij. Betekent bijvoorbeeld 0 'huidige rij', -1 betekent de rij vóór de huidige rij en 5 betekent de vijfde rij na de huidige rij.

Een grens op basis van rijen is gebaseerd op de positie van de rij binnen de partitie. Een offset geeft het aantal rijen boven of onder de huidige rij aan waar het frame begint of eindigt.

Syntaxis

Window.rowsBetween(start, end)

Parameterwaarden

Kenmerk Typ Beschrijving
start int Begin van grens, inclusief. Het frame is niet afhankelijk als dit een waarde is Window.unboundedPrecedingdie kleiner is dan of gelijk is aan -9223372036854775808.
end int Grenseinde, inclusief. Het frame is niet afhankelijk als dit een waarde is Window.unboundedFollowingdie groter is dan of gelijk is aan 9223372036854775807.

Retouren

WindowSpec

Aantekeningen

Gebruik Window.unboundedPreceding, Window.unboundedFollowingen Window.currentRow om speciale grenswaarden op te geven in plaats van integrale waarden rechtstreeks te gebruiken.

Examples

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