dropDuplicates

Devolva um novo DataFrame com as linhas duplicadas removidas, considerando opcionalmente apenas certas colunas.

Sintaxe

dropDuplicates(subset: Optional[List[str]] = None)

Parâmetros

Parâmetro Tipo Descrição
subset Lista de nomes das colunas, opcional Lista de colunas a usar para comparação duplicada (por defeito Todas as colunas).

Devoluções

DataFrame: DataFrame sem duplicados.

Notes

Para um DataFrame em lote estático, simplesmente deixa cair linhas duplicadas. Para um DataFrame em streaming, mantém todos os dados entre triggers como estado intermédio para eliminar linhas duplicadas. Podes usar withWatermark para limitar o quão tarde os dados duplicados podem estar e o sistema limitará o estado em conformidade. Além disso, dados mais antigos do que a marca de água serão eliminados para evitar qualquer possibilidade de duplicados.

Exemplos

from pyspark.sql import Row
df = spark.createDataFrame([
    Row(name='Alice', age=5, height=80),
    Row(name='Alice', age=5, height=80),
    Row(name='Alice', age=10, height=80)
])

df.dropDuplicates().show()
# +-----+---+------+
# | name|age|height|
# +-----+---+------+
# |Alice|  5|    80|
# |Alice| 10|    80|
# +-----+---+------+

df.dropDuplicates(['name', 'height']).show()
# +-----+---+------+
# | name|age|height|
# +-----+---+------+
# |Alice|  5|    80|
# +-----+---+------+