Недавно мы начали кэшировать RDD, которые повторно использовались несколько раз, даже если для вычисления этих RDD не требуется много времени.
Согласно документации, Spark автоматически удалит неиспользуемые кэшированные данные, используя стратегию LRU.
Так есть ли недостатки в оверкешировании RDD? Я подумал, что, возможно, наличие всех этих десериализованных данных в памяти может оказать большее давление на сборщик мусора, но стоит ли об этом беспокоиться?
Основным недостатком кеширования большого количества RDD является (очевидно) то, что оно использует память. Если размер кэша ограничен, стратегия LRU не обязательно означает, что наименее ценные элементы удаляются. Если вы кэшируете все, независимо от его ценности, вы можете обнаружить, что более дорогостоящие в вычислительном отношении, но редко используемые элементы удаляются, когда вы этого не хотите.