Какова эффективная стратегия разбиения для независимого от ключа отображения? - PullRequest
1 голос
/ 09 октября 2019

Прежде всего, я работаю с PySpark на Glue и читаю несколько очень больших CSV-файлов. Эти CSV-файлы сжаты bzip2 и накачаны на несколько ГБ.

На данном этапе обработки я выполняю только простую карту для всех строк. Нет объединений, групповых посещений, фильтрации. Просто карта.

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

Я бы предположил, что независимо от доступных ядер на всех этих узлах это число должно быть довольно высоким, чтобы гарантировать, что каждыйexecutor постоянно занят доступными небольшими порциями данных.

Итак, предположим, что на этих 10 узлах 20 ядер, и давайте на секунду предположим, что есть разделов на основе ключей, тогдачто-то больше 40 скорее всего не будет хорошей идеей. Но в случае отображения, не зависящего от ключа, я бы предпочел что-то вроде 1000 разделов или более.

Имеет ли это смысл? Я особенно заинтересован в мыслительном процессе здесь.

...