Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Контейнеризируйте строки в одно или несколько периодов времени с указанием метки времени, указывающей столбец. Запуск окна включительно, но окончания окна являются эксклюзивными, например 12:05, будут находиться в окне [12:05,12:10) , но не в [12:00,12:05). Windows может поддерживать точность микросекунда. Windows в порядке месяцев не поддерживается.
Столбец времени должен иметь значение pyspark.sql.types.TimestampType.
Длительность предоставляется в виде строк, например "1 секунда", "1 день 12 часов", "2 минуты". Допустимые строки интервала: "неделя", "день", "час", "минута", "вторая", "миллисекунда", "микросекунды".
slideDuration Если это не указано, окна будут переворачиваться.
StartTime — это смещение относительно 1970-01-01 00:00:00 UTC, с которыми следует запускать интервалы окна. Например, чтобы иметь почасовые падающие окна, начинающиеся за 15 минут за час, например 12:15-13:15, 13:15-14:15... укажите startTime как 15 minutes.
Выходной столбец будет структурой под названием "окно" по умолчанию с вложенными столбцами "start" и "end", где "start" и "end" будет иметь pyspark.sql.types.TimestampTypeзначение .
Для соответствующей функции Databricks SQL см window . выражение группировки.
Синтаксис
from pyspark.databricks.sql import functions as dbf
dbf.window(timeColumn=<timeColumn>, windowDuration=<windowDuration>, slideDuration=<slideDuration>, startTime=<startTime>)
Параметры
| Параметр | Тип | Description |
|---|---|---|
timeColumn |
pyspark.sql.Column или str |
Столбец или выражение, используемое в качестве метки времени для окна по времени. Столбец времени должен иметь значение TimestampType или TimestampNTZType. |
windowDuration |
literal string |
Строка, указывающая ширину окна, например 10 minutes, 1 second. Проверьте org.apache.spark.unsafe.types.CalendarInterval допустимые идентификаторы длительности. Обратите внимание, что длительность является фиксированной продолжительностью времени и не зависит от времени в соответствии с календарем. Например, 1 day всегда означает 86 400 000 миллисекунда, а не день календаря. |
slideDuration |
literal string, optional |
Каждое окно будет создано в slideDurationновом окне. Должно быть меньше или равно windowDuration. Проверьте org.apache.spark.unsafe.types.CalendarInterval допустимые идентификаторы длительности. Эта длительность также является абсолютной и не зависит от календаря. |
startTime |
literal string, optional |
Смещение относительно 1970-01-01 00:00:00 UTC, с которыми следует запускать интервалы окна. Например, чтобы иметь почасовые падающие окна, начинающиеся за 15 минут за час, например 12:15-13:15, 13:15-14:15... укажите startTime как 15 minutes. |
Возвраты
pyspark.sql.Column: столбец для вычисляемых результатов.
Примеры
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()