Compartilhar via


rowsBetween (Janela)

Cria um WindowSpec com os limites de quadro definidos, de start (inclusivo) a end (inclusivo).

Ambas start e end são posições relativas da linha atual. Por exemplo, 0 significa "linha atual", -1 significa a linha antes da linha atual e 5 significa a quinta linha após a linha atual.

Um limite baseado em linha é baseado na posição da linha dentro da partição. Um deslocamento indica o número de linhas acima ou abaixo da linha atual em que o quadro inicia ou termina.

Sintaxe

Window.rowsBetween(start, end)

Parâmetros

Parâmetro Tipo Descrição
start INT Início do limite, inclusive. O quadro será desvinculado se for Window.unboundedPreceding, ou qualquer valor menor ou igual a -9223372036854775808.
end INT Fim do limite, inclusivo. O quadro será desvinculado se for Window.unboundedFollowing, ou qualquer valor maior ou igual a 9223372036854775807.

Devoluções

WindowSpec

Observações

Use Window.unboundedPrecedinge Window.unboundedFollowingespecifique Window.currentRow valores de limite especiais em vez de usar valores integrais diretamente.

Exemplos

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