Выбор ответа Middle Spark обновлено
Когда кешировать
Вопрос
Когда df.cache() действительно ускоряет программу?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Когда один и тот же дорогой промежуточный результат используется в нескольких действиях. Без кеша каждое действие пересчитывает весь план от источника.
Варианты ответа
- Когда один и тот же дорогой промежуточный результат используется в нескольких действияхправильный ответ
- Всегда: кеш не бывает лишним, а Spark сам вытеснит его при нехватке памяти без потерь
- Когда DataFrame используется один раз сразу после чтения, чтобы не ходить в S3 повторно
- Когда нужно уменьшить число партиций перед записью без shuffle и дорогого пересчёта
Разбор
Без кеша каждое действие пересчитывает весь план от источника. Если результат нужен в двух-трёх местах, кеш экономит пересчёт. Если используется один раз, кеш только занимает память и время на запись. Число партиций кеш не меняет.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.