удалить дубликаты

Возвращает новый кадр данных с удаленными повторяющимися строками, при необходимости только учитывая определенные столбцы.

Синтаксис

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

Параметры

Параметр Тип Описание
subset список имен столбцов, необязательный Список столбцов, используемых для дублирования сравнения (по умолчанию — все столбцы).

Возвраты

DataFrame: DataFrame без дубликатов.

Примечания

Для статического пакетного кадра данных он просто удаляет повторяющиеся строки. Для потокового кадра данных все данные будут храниться во всех триггерах в качестве промежуточного состояния для удаления повторяющихся строк. Можно использовать withWatermark для ограничения того, как поздно могут быть повторяющиеся данные, и система будет соответствующим образом ограничивать состояние. Кроме того, данные старше подложки будут удалены, чтобы избежать любых возможных дубликатов.

Примеры

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|
# +-----+---+------+