Аккумуляторы pyspark - понимание их использования

Я хотел бы понять, что такое использование аккумуляторов. Основываясь на онлайн-примерах, кажется, что мы можем использовать их для подсчета конкретных проблем с данными. Например, у меня много номеров лицензий, я могу посчитать, сколько из них недействительно с использованием аккумуляторов. Но не можем ли мы сделать то же самое, используя операции фильтра и карты? Можно ли показать хороший пример использования аккумуляторов? Буду признателен, если вы предоставите пример кода в pyspark вместо Java или Scala

1 ответ

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

Начнем с первого случая. Ты можешь использовать accumulator или названный accumulator контролировать выполнение программы в режиме, близком к реальному времени (обновляется для каждой задачи) и, например, завершать работу, если вы сталкиваетесь со многими недействительными записями. Состояние указанных аккумуляторов можно отслеживать, например, с помощью пользовательского интерфейса драйвера.

В случае действий он может использоваться для получения дополнительной статистики. Например, если вы используете foreach, foreachPartition для передачи данных во внешнюю систему вы можете использовать аккумуляторы для отслеживания сбоев.


* Когда аккумуляторы действительно надежны?

Другие вопросы по тегам