Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Membuat dengan batas bingkai yang WindowSpec ditentukan, dari start (inklusif) hingga end (inklusif).
Keduanya start dan end relatif dari baris saat ini. Misalnya, 0 berarti "baris saat ini", -1 berarti satu sebelum baris saat ini, dan 5 berarti lima setelah baris saat ini.
Batas berbasis rentang didasarkan pada nilai ORDER BY aktual ekspresi. Offset mengubah nilai ORDER BY ekspresi — misalnya, jika nilai saat ini ORDER BY adalah 10 dan offset terikat yang lebih rendah adalah -3, batas bawah yang dihasilkan adalah 7. Karena itu, bingkai berbasis rentang memerlukan tepat satu ORDER BY ekspresi dengan jenis data numerik, kecuali offset tidak terbatas.
Sintaksis
Window.rangeBetween(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 max(-sys.maxsize, -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 min(sys.maxsize, 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 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|
# +---+--------+---+