Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
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|
# +---+--------+---+