Выбор ответа Middle Spark обновлено

Когда кешировать

Вопрос

Когда df.cache() действительно ускоряет программу?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Когда один и тот же дорогой промежуточный результат используется в нескольких действиях. Без кеша каждое действие пересчитывает весь план от источника.

Варианты ответа

  1. Когда один и тот же дорогой промежуточный результат используется в нескольких действияхправильный ответ
  2. Всегда: кеш не бывает лишним, а Spark сам вытеснит его при нехватке памяти без потерь
  3. Когда DataFrame используется один раз сразу после чтения, чтобы не ходить в S3 повторно
  4. Когда нужно уменьшить число партиций перед записью без shuffle и дорогого пересчёта

Разбор

Без кеша каждое действие пересчитывает весь план от источника. Если результат нужен в двух-трёх местах, кеш экономит пересчёт. Если используется один раз, кеш только занимает память и время на запись. Число партиций кеш не меняет.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.