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.
Retorne um novo DataFrame com linhas duplicadas removidas, opcionalmente considerando apenas determinadas colunas, dentro da marca d'água.
Sintaxe
dropDuplicatesWithinWatermark(subset: Optional[List[str]] = None)
Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
subset |
Lista de nomes de coluna, opcional | Lista de colunas a serem usadas para comparação duplicada (todas as colunas padrão). |
Devoluções
DataFrame: DataFrame sem duplicatas.
Observações
Isso só funciona com o DataFrame de streaming e a marca d'água para o DataFrame de entrada deve ser definida por meio de withWatermark.
Para um DataFrame de streaming, isso manterá todos os dados entre gatilhos como estado intermediário para remover linhas duplicadas. O estado será mantido para garantir a semântica: "Os eventos são duplicados, desde que a distância de tempo dos eventos mais antigos e mais recentes seja menor que o limite de atraso da marca d'água". Os usuários são incentivados a definir o limite de atraso da marca d'água por mais tempo do que as diferenças máximas de carimbo de data/hora entre eventos duplicados.
Observação: dados tarde demais mais antigos do que a marca d'água serão descartados.
Dá suporte ao Spark Connect.
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]
df.dropDuplicatesWithinWatermark()
df.dropDuplicatesWithinWatermark(['value'])