dropDuplicates
Renvoie un nouveau DataFrame avec les lignes en double supprimées, en ne considérant que certaines colonnes, le cas échéant.
Syntaxe
dropDuplicates(subset: Optional[List[str]] = None)
parameter
parameter | Type | Description |
|---|---|---|
| liste des noms de colonne, facultatif | Liste des colonnes à utiliser pour la comparaison des doublons (default toutes les colonnes). |
Renvoie
DataFrame: DataFrame sans doublons.
Notes
Pour un DataFrame batch statique, il supprime simplement les lignes en double. Pour un DataFrame de streaming, il conservera toutes les données de tous les Trigger comme état intermédiaire pour supprimer les lignes en double. Vous pouvez utiliser withWatermark pour limiter le retard des données en double, et le système limitera l'état en conséquence. De plus, les données plus anciennes que le watermark seront supprimées afin d'éviter toute possibilité de doublons.
Exemples
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|
# +-----+---+------+