Compartir vía


periodo

Clasifique las filas en una o más ventanas de tiempo dado un column de especificación de marca de tiempo. Los inicios de la ventana son inclusivos, pero los extremos de la ventana son exclusivos; por ejemplo, las 12:05 estarán en la ventana [12:05,12:10) , pero no en [12:00,12:05). Windows puede admitir la precisión de microsegundos. No se admiten Windows en el orden de los meses.

La columna de hora debe ser de pyspark.sql.types.TimestampType.

Las duraciones se proporcionan como cadenas, por ejemplo, "1 segundo", "1 día 12 horas", "2 minutos". Las cadenas de intervalo válidas son 'week', 'day', 'hour', 'minute', 'second', 'milisecond', 'microsecond'. slideDuration Si no se proporciona , las ventanas serán ventanas de saltos de tamaño constante.

StartTime es el desplazamiento con respecto a 1970-01-01 00:00:00 UTC con el que iniciar intervalos de ventana. Por ejemplo, para tener ventanas de saltos de tamaño constante por hora que comienzan 15 minutos más allá de la hora, por ejemplo, 12:15-13:15, 13:15-14:15... proporcione startTime como 15 minutes.

La columna de salida será una estructura denominada "window" de forma predeterminada con las columnas anidadas "start" y "end", donde "start" y "end" serán de pyspark.sql.types.TimestampType.

Para obtener la función SQL de Databricks correspondiente, consulte window expresión de agrupación.

Syntax

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 o str Columna o expresión que se va a usar como marca de tiempo para la ventana por tiempo. La columna de hora debe ser de TimestampType o TimestampNTZType.
windowDuration literal string Cadena que especifica el ancho de la ventana, por ejemplo 10 minutes, , 1 second. Compruebe org.apache.spark.unsafe.types.CalendarInterval si hay identificadores de duración válidos. Tenga en cuenta que la duración es un período fijo de tiempo y no varía con el tiempo según un calendario. Por ejemplo, 1 day siempre significa 86.400.000 milisegundos, no un día natural.
slideDuration literal string, optional Se generará una nueva ventana cada slideDuration. Debe ser menor o igual que .windowDuration Compruebe org.apache.spark.unsafe.types.CalendarInterval si hay identificadores de duración válidos. Esta duración es igualmente absoluta y no varía según un calendario.
startTime literal string, optional Desplazamiento con respecto a 1970-01-01 00:00:00 UTC con el que iniciar intervalos de ventana. Por ejemplo, para tener ventanas de saltos de tamaño constante por hora que comienzan 15 minutos más allá de la hora, por ejemplo, 12:15-13:15, 13:15-14:15... proporcione startTime como 15 minutes.

Devoluciones

pyspark.sql.Column: la columna para los 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()