Nota
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Genera una ventana de sesión con una marca de tiempo que especifica una columna.
La ventana de sesión es una de las ventanas dinámicas, lo que significa que la longitud de la ventana varía según las entradas especificadas. La longitud de la ventana de sesión se define como "la marca de tiempo de la entrada más reciente de la sesión y la duración del intervalo", por lo que cuando las nuevas entradas están enlazadas a la ventana de sesión actual, la hora de finalización de la ventana de sesión se puede expandir según las nuevas entradas.
Windows puede admitir la precisión de microsegundos. No se admiten Windows en el orden de los meses.
Para una consulta de streaming, puede usar la función current_timestamp para generar ventanas en tiempo de procesamiento.
gapDuration se proporciona 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'.
También podría ser una columna que se puede evaluar para la duración de la brecha dinámicamente en función de la fila de entrada.
La columna de salida será una estructura denominada "session_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 session_window expresión de agrupación.
Syntax
from pyspark.databricks.sql import functions as dbf
dbf.session_window(timeColumn=<timeColumn>, gapDuration=<gapDuration>)
Parámetros
| Parámetro | Tipo | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column o str |
Nombre de columna o columna que se va a usar como marca de tiempo para la ventana por tiempo. La columna de hora debe ser de TimestampType o TimestampNTZType. |
gapDuration |
pyspark.sql.Column o literal string |
Literal o columna de cadena de Python que especifica el tiempo de espera de la sesión. Podría ser un valor estático, por ejemplo 10 minutes, , 1 secondo una expresión o UDF que especifique la duración de la brecha dinámicamente en función de la fila de entrada. |
Devoluciones
pyspark.sql.Column: la columna para los resultados calculados.
Examples
from pyspark.databricks.sql import functions as dbf
df = spark.createDataFrame([('2016-03-11 09:00:07', 1)], ['dt', 'v'])
df2 = df.groupBy(dbf.session_window('dt', '5 seconds')).agg(dbf.sum('v'))
df2.show(truncate=False)
df2.printSchema()