Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Define uma marca d'água de hora do evento para este DataFrame. Uma marca d'água rastreia um ponto no tempo antes do qual presumimos que não haverá mais dados atrasados.
Sintaxe
withWatermark(eventTime: str, delayThreshold: str)
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
eventTime |
str | o nome da coluna que contém a hora do evento da linha. |
delayThreshold |
str | o atraso mínimo para aguardar até que os dados cheguem atrasados, em relação ao registro mais recente que foi processado na forma de um intervalo (por exemplo, "1 minuto" ou "5 horas"). |
Devoluções
DataFrame: DataFrame com marca d'água.
Observações
Esse é um recurso somente para Streaming Estruturado.
O Spark usará essa marca d'água para várias finalidades:
- Para saber quando uma agregação de janela de tempo determinada pode ser finalizada e, portanto, pode ser emitida ao usar modos de saída que não permitem atualizações.
- Para minimizar a quantidade de estado que precisamos manter para agregações em andamento.
A marca d'água atual é calculada examinando o MAX(eventTime) visto em todas as partições na consulta menos um usuário especificado delayThreshold. Devido ao custo de coordenar esse valor entre partições, a marca d'água real usada só tem a garantia de estar, pelo menos delayThreshold , por trás do tempo real do evento.
Exemplos
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]