Partilhar via


janela

Agrupe as linhas em uma ou mais janelas temporais usando uma coluna que especifica um carimbo de data/hora. Os inícios das janelas são inclusivos, mas as extremidades das janelas são exclusivas, por exemplo, 12:05 estarão na janela [12:05,12:10) mas não em [12:00,12:05). O Windows pode suportar precisão em microssegundos. As janelas na ordem de meses não são suportadas.

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

As durações são fornecidas como sequências, por exemplo, '1 segundo', '1 dia, 12 horas', '2 minutos'. As cadeias de intervalos válidas são 'semana', 'dia', 'hora', 'minuto', 'segundo', 'milissegundo', 'microssegundo'. Se não slideDuration for fornecida, as janelas serão janelas que caem.

O startTime é o deslocamento em relação às 00:00-01-1970 00:00:00 UTC com o qual iniciar os intervalos da janela. Por exemplo, para ter janelas de tumbling horárias que começam 15 minutos depois da hora, por exemplo 12:15-13:15, 13:15-14:15... fornece startTime como 15 minutes.

A coluna de saída será uma estrutura chamada 'window' por defeito, com as colunas aninhadas 'start' e 'end', onde 'start' e 'end' serão de pyspark.sql.types.TimestampType.

Para a função SQL correspondente do Databricks, vejawindow expressão de agrupamento.

Sintaxe

from pyspark.databricks.sql import functions as dbf

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

Parâmetros

Parâmetro Tipo Description
timeColumn pyspark.sql.Column ou str A coluna ou a expressão a usar como carimbo temporal para a janela por tempo. A coluna de tempo deve ser de TimestampType ou TimestampNTZType.
windowDuration literal string Uma cadeia que especifica a largura da janela, por exemplo, 10 minutes. 1 second Verifique org.apache.spark.unsafe.types.CalendarInterval identificadores de duração válidos. Note-se que a duração é uma duração fixa e não varia ao longo do tempo segundo um calendário. Por exemplo, 1 day significa sempre 86.400.000 milissegundos, não um dia civil.
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 identificadores de duração válidos. Esta duração é igualmente absoluta e não varia de acordo com um calendário.
startTime literal string, optional O deslocamento em relação a 1970-01-01 00:00:00 UTC para iniciar intervalos de janela. Por exemplo, para ter janelas de tumbling horárias que começam 15 minutos depois da hora, por exemplo 12:15-13:15, 13:15-14:15... fornece startTime como 15 minutes.

Devoluções

pyspark.sql.Column: a coluna para resultados calculados.

Examples

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()