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
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 |
|---|---|---|
|
| 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. |
|
| Uma string que especifica a largura da janela, por exemplo |
|
| Uma nova janela será gerada a cada |
|
| 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 |
Devoluções
pyspark.sql.Column: a coluna para resultados de cálculo.
Exemplos
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()