rowsBetween (Ventana)

Crea un WindowSpec objeto con los límites de marco definidos, de start (ambos incluidos) a end (inclusivos).

Tanto como startend son posiciones relativas de la fila actual. Por ejemplo, 0 significa "fila actual", -1 significa la fila antes de la fila actual y 5 significa la quinta fila después de la fila actual.

Un límite basado en filas se basa en la posición de la fila dentro de la partición. Un desplazamiento indica el número de filas por encima o por debajo de la fila actual donde comienza o termina el marco.

Sintaxis

Window.rowsBetween(start, end)

Parámetros

Parámetro Tipo Descripción
start int Inicio de límite, inclusivo. El marco no está enlazado si es Window.unboundedPreceding, o cualquier valor menor o igual que -9223372036854775808.
end int Fin del límite, inclusivo. El marco no está enlazado si es Window.unboundedFollowing, o cualquier valor mayor o igual que 9223372036854775807.

Devoluciones

WindowSpec

Notas

Use Window.unboundedPreceding, Window.unboundedFollowingy Window.currentRow para especificar valores de límite especiales en lugar de usar valores enteros directamente.

Ejemplos

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