Самый оптимальный способ удаления дубликатов в pySpark - PullRequest
0 голосов
/ 24 сентября 2018

Я пытаюсь удалить дубликаты в кадрах данных spark с помощью dropDuplicates () на нескольких столбцах.Но работа зависает из-за большого количества перетасовок и перекоса данных.Для этого я использовал 5 ядер и 30 ГБ памяти.Данные, для которых я выполняю dropDuplicates (), составляют около 12 миллионов строк.

Пожалуйста, предложите мне наиболее оптимальный способ удаления дубликатов в искре, учитывая перекос данных и перестановку.

1 Ответ

0 голосов
/ 25 сентября 2018

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

Я бы порекомендовал групповое преобразование столбцов вашего информационного кадра с последующим действием коммита.Таким образом, только консолидированные результаты вашего RDD будут сравниваться с другими RDD, которые слишком ленивы, и тогда вы можете запросить результат с помощью любого действия, такого как commit / show и т. Д.

transactions.groupBy("col1”,”col2").count.sort($"count".desc).show
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...