rowsBetween (okno)

Vytvoří s WindowSpec definovanými hranicemi rámce od start (včetně) do end (včetně).

Obě start a end jsou relativní pozice z aktuálního řádku. Například 0 znamená "aktuální řádek", -1 znamená řádek před aktuálním řádkem a 5 znamená pátý řádek za aktuálním řádkem.

Hranice založená na řádcích je založená na umístění řádku v rámci oddílu. Posun označuje počet řádků nad nebo pod aktuálním řádkem, kde rámeček začíná nebo končí.

Syntaxe

Window.rowsBetween(start, end)

Parametry

Parameter Typ Description
start int (integer) Začátek hranice včetně. Rámec je nevázaný, pokud je Window.unboundedPrecedingtato hodnota nebo jakákoli hodnota menší nebo rovna -9223372036854775808.
end int (integer) Konec hranice včetně. Rámec je nevázaný, pokud je Window.unboundedFollowingtato hodnota nebo jakákoli hodnota větší nebo rovna 9223372036854775807.

Návraty

WindowSpec

Poznámky

Použijte Window.unboundedPreceding, Window.unboundedFollowinga Window.currentRow k určení speciálních hraničních hodnot místo použití integrálních hodnot přímo.

Příklady

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