Pular para o conteúdo principal

janela

Agrupar linhas em uma ou mais janelas de tempo, dado um registro de data e hora na coluna especificada. As janelas que começam são inclusivas, mas as janelas que terminam são exclusivas, por exemplo. 12:05 estará na janela [12:05,12:10) mas não em [12:00,12:05). O Windows suporta precisão em microssegundos. Não há suporte Windows na ordem dos meses.

A coluna de tempo deve ser pyspark.sql.types.TimestampType.

duração são fornecidos como strings, por exemplo '1 segundo', '1 dia e 12 horas', '2 minutos'. Válido strings de intervalos são 'semana', 'dia', 'hora', 'minuto', 'segundo', 'milissegundo' e 'microssegundo'. Se o slideDuration não for fornecido, as janelas serão janelas basculantes.

O startTime é o deslocamento em relação a 1970-01-01 00:00:00 UTC a partir do qual o programa deve começar. intervalos de janela. Por exemplo, para ter janelas giratórias de hora em hora que comecem em 15 minutos. após a hora, por exemplo 12:15-13:15, 13:15-14:15... forneça startTime como 15 minutes.

A coluna de saída será uma estrutura chamada 'window' por default , com as colunas aninhadas 'começar'. e 'fim', onde 'começar' e 'fim' serão de pyspark.sql.types.TimestampType.

Para a função Databricks SQL correspondente, consulte a expressão de agrupamentowindow.

Sintaxe

Python
from pyspark.databricks.sql import functions as dbf

dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)

Parâmetros

Parâmetro

Tipo

Descrição

timeColumn

pyspark.sql.Column ou str

A coluna ou a expressão a ser usada como carimbo de data/hora para o recorte por tempo. A coluna de tempo deve ser do tipo TimestampType ou TimestampNTZType.

windowDuration

literal string

Uma string que especifica a largura da janela, por exemplo 10 minutes, 1 second. Verifique org.apache.spark.unsafe.types.CalendarInterval para identificadores de duração válidos. Note que a duração é um período fixo de tempo e não varia ao longo do tempo de acordo com um calendário. Por exemplo, 1 day sempre significa 86.400.000 milissegundos, não um dia do calendário.

slideDuration

literal string, optional

Uma nova janela será gerada a cada slideDuration. Deve ser menor ou igual a windowDuration. Verifique org.apache.spark.unsafe.types.CalendarInterval para identificadores de duração válidos. Essa duração é igualmente absoluta e não varia de acordo com um calendário.

startTime

literal string, optional

O deslocamento em relação a 01/01/1970 00:00:00 UTC a partir do qual os intervalos da janela devem ser iniciados. Por exemplo, para ter janelas deslizantes de hora em hora que comecem 15 minutos após a hora cheia, por exemplo 12:15-13:15, 13:15-14:15... forneça startTime como 15 minutes.

Devoluções

pyspark.sql.Column: a coluna para resultados de cálculo.

Exemplos

Python
import datetime
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([(datetime.datetime(2016, 3, 11, 9, 0, 7), 1)], ['dt', 'v'])
df2 = df.groupBy(dbf.window('dt', '5 seconds')).agg(dbf.sum('v'))
df2.show(truncate=False)
df2.printSchema()