Я понимаю, что когда искра не может поместить все данные в памяти в свой раздел для выполнения задания, мы можем использовать persist (StorageLevel.MEMORY_AND_DISK), чтобы избежать ошибки OOM.
1) Как тогда Spark выполняет операции в таких сценариях?
2) Загружает ли он данные в памяти с диска, который необходимо вычислить или обработать?
3) Когда наступит случайная фаза? Сохранен ли вывод обработанных данных, которые имеют «фазу тасования», в памяти или записан обратно на диск? Сказал, что у нас есть ограничение памяти, так как все дисковое пространство используется, и я предполагаю, что для выполнения кода над кодом потребуется слишком много памяти.