@willis.streich
Для обработки дубликатов в PySpark можно использовать метод dropDuplicates()
.
Этот метод удаляет все строки, содержащие дубликаты, и возвращает новый DataFrame без дубликатов.
Пример использования метода dropDuplicates()
:
1 2 3 4 5 6 7 8 9 10 11 |
from pyspark.sql.functions import * # создание DataFrame с дубликатами data = [(1, 'John'), (2, 'Bob'), (3, 'John'), (4, 'Sam'), (5, 'Bob')] df = spark.createDataFrame(data, ['id', 'name']) # удаление дубликатов по столбцу 'name' df = df.dropDuplicates(['name']) # вывод результата df.show() |
В результате будет получен новый DataFrame без дубликатов по столбцу 'name':
1 2 3 4 5 6 7 |
+---+----+ | id|name| +---+----+ | 4| Sam| | 1|John| | 2| Bob| +---+----+ |
Можно также использовать метод distinct()
, который возвращает только уникальные строки в DataFrame:
1 2 3 4 5 |
# получение уникальных строк в DataFrame df = df.distinct() # вывод результата df.show() |
Этот метод также возвращает новый DataFrame без дубликатов:
1 2 3 4 5 6 7 |
+---+----+ | id|name| +---+----+ | 4| Sam| | 1|John| | 2| Bob| +---+----+ |