Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Определяет подложку времени события для этого кадра данных. Подложка отслеживает точку во времени, до которой мы предполагаем, что больше поздних данных не будет поступать.
Синтаксис
withWatermark(eventTime: str, delayThreshold: str)
Параметры
| Параметр | Тип | Описание |
|---|---|---|
eventTime |
str | имя столбца, содержащего время события строки. |
delayThreshold |
str | минимальная задержка для ожидания поступления данных в секунду относительно последней записи, которая была обработана в виде интервала (например, "1 минута" или "5 часов"). |
Возвраты
DataFrame: подложка кадра данных.
Примечания
Это функция только для структурированной потоковой передачи.
Spark будет использовать этот водяной знак для нескольких целей:
- Чтобы узнать, когда агрегирование заданного периода времени может быть завершено и таким образом может быть выдано при использовании режимов вывода, которые не разрешают обновления.
- Чтобы свести к минимуму количество состояний, которые необходимо сохранить для агрегатов.
Текущая подложка вычисляется путем просмотра MAX(eventTime) всех секций в запросе минус указанного delayThresholdпользователя. Из-за затрат на согласование этого значения между секциями фактический водяной знак, используемый, гарантируется только за delayThreshold фактическим временем события.
Примеры
from pyspark.sql import Row
from pyspark.sql.functions import timestamp_seconds
df = spark.readStream.format("rate").load().selectExpr(
"value % 5 AS value", "timestamp")
df.select("value", df.timestamp.alias("time")).withWatermark("time", '10 minutes')
# DataFrame[value: bigint, time: timestamp]