Как размер DataFrame, кэшируемый в памяти, влияет на время обработки в Apache Spark? - PullRequest
0 голосов
/ 05 марта 2019

Я экспериментировал с тем, какие максимальные необработанные данные я могу кэшировать, не влияя на общее время обработки задания в Spark.

Spark Cluster - 2 машины, 12 ядер, 96 ГБ ОЗУ.Я создал 12 рабочих, каждый с 1 ядром и 8 ГБ оперативной памяти.

Я кэшировал паркет размером ~ 2,4 ГБ, что создает объем оперативной памяти около 5,4 ГБ в ОЗУ.На простом задании это занимает ~ 8 секунд (Count -> GroupBY -> Collect).

Я снова кэшировал 6 похожих файлов, каждый паркет по ~ 2,4 ГБ, что создает общий объем памяти около ~ 30 ГБ,снова выполняя ту же задачу (Count -> GroupBY -> Collect) на загруженном кэшированном фрейме данных объемом 5,4 ГБ, занимает ~ 12 сек.

данные представляют собой смесь полей (дата, метка времени, строка, двойное число) ~ 300 столбцовв каждом файле.

Уже пробовали -

Случай 1 - Всего исполнителей - 4, Каждое ядро ​​исполнителя - 3 ядра, Каждая память исполнителя 24 ГБ

Случай 2 - Всего исполнителей - 6, Ядра каждого исполнителя - 2 ядра, Память каждого исполнителя 16 ГБ

Случай 3 - Всего исполнителей - 12, Ядра каждого исполнителя - 1 ядро, Каждая память исполнителя 8 ГБ

Случай 3 дает мне лучшие результаты.

это правильное поведение для искры?

Spark v2.0.2

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...