rowsBetween (Jendela)

Membuat dengan batas bingkai yang WindowSpec ditentukan, dari start (inklusif) hingga end (inklusif).

Keduanya start dan end merupakan posisi relatif dari baris saat ini. Misalnya, 0 berarti "baris saat ini", -1 berarti baris sebelum baris saat ini, dan 5 berarti baris kelima setelah baris saat ini.

Batas berbasis baris didasarkan pada posisi baris dalam partisi. Offset menunjukkan jumlah baris di atas atau di bawah baris saat ini tempat bingkai dimulai atau berakhir.

Sintaksis

Window.rowsBetween(start, end)

Parameter-parameternya

Parameter Tipe Deskripsi
start int Mulai batas, inklusif. Bingkai tidak terbatas jika ini adalah Window.unboundedPreceding, atau nilai apa pun yang kurang dari atau sama dengan -9223372036854775808.
end int Batas akhir, inklusif. Bingkai tidak terbatas jika ini adalah Window.unboundedFollowing, atau nilai apa pun yang lebih besar dari atau sama dengan 9223372036854775807.

Pengembalian Barang

WindowSpec

Catatan

Gunakan Window.unboundedPreceding, Window.unboundedFollowing, dan Window.currentRow untuk menentukan nilai batas khusus daripada menggunakan nilai integral secara langsung.

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