tumbling_window(timeColumn, windowDuration)
Описание
Функция tumbling_window() создает окно с фиксированным размером для агрегации данных.
Параметры
timeColumn: Column - столбец с временными меткамиwindowDuration: str - длительность окна (например, "5 minutes", "1 hour", "1 day")
Возвращаемое значение
Column - метка времени начала окна
Пример использования
from pyspark.sql.functions import tumbling_window, count, col
from pyspark.sql import SparkSession
# Создаем SparkSession
spark = SparkSession.builder.appName("tumbling_window_example").getOrCreate()
# Создаем DataFrame с временными метками
data = [
    ("2023-01-01 10:00:00", 1),
    ("2023-01-01 10:05:00", 2),
    ("2023-01-01 10:10:00", 3),
    ("2023-01-01 10:15:00", 4),
    ("2023-01-01 10:20:00", 5)
]
df = spark.createDataFrame(data, ["timestamp", "value"])
# Преобразуем строки в метки времени
df = df.withColumn("timestamp", col("timestamp").cast("timestamp"))
# Агрегируем данные по окнам
result = df.groupBy(
    tumbling_window("timestamp", "10 minutes")
).agg(
    count("value").alias("count")
)
result.show(truncate=False)
# Результат:
# +------------------------------------------+-----+
# |window                                    |count|
# +------------------------------------------+-----+
# |[2023-01-01 10:00:00, 2023-01-01 10:10:00]|2    |
# |[2023-01-01 10:10:00, 2023-01-01 10:20:00]|2    |
# |[2023-01-01 10:20:00, 2023-01-01 10:30:00]|1    |
# +------------------------------------------+-----+
 Примечания
- Окна не перекрываются
 - Размер окна фиксированный
 - Полезно для:
 - Агрегации данных по фиксированным интервалам
 - Анализа временных рядов
 - Создания отчетов
 - Связанные функции:
 sliding_window()- скользящее окноwindow()- общее окно