Spill — выгрузка промежуточных данных из памяти на диск, например при сортировке или агрегации. Он замедляет работу, но сам по себе не означает ошибку.
Что такое data spill в Spark и как его избежать, если нельзя просто добавить ресурсов?
Spill — выгрузка промежуточных данных из памяти на диск, например при сортировке или агрегации. Он замедляет работу, но сам по себе не означает ошибку.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Spill — выгрузка промежуточных данных из памяти на диск, например при сортировке или агрегации. Он замедляет работу, но сам по себе не означает ошибку.
Без добавления ресурсов уменьшают обрабатываемый набор: раньше фильтруют, выбирают нужные колонки и агрегируют. Проверяют перекос ключей, размеры partitions и слишком большой уровень параллелизма на executor. Нельзя просто отключить spill: он защищает от нехватки памяти. Решение выбирают по метрикам конкретного stage.