Да, кеширование промежуточных результатов работает, если одновременно запускать два запроса с одинаковым «началом». 1
Например, в Spark SQL, если немедленно запускать тот же запрос, это возможно, потому что система использует метод LRU для управления памятью. 1 Также, если работа требует перетасовки, промежуточные результаты этой операции будут сохранены на всех рабочих узлах и не сразу удаляются. 1 Таким образом, при запуске аналогичного запроса Spark понимает, что перетасованные данные уже на месте, и продолжает работу с них. 1
Кроме того, в классической среде кэширование может снизить вероятность нескольких запросов к одному источнику данных, так как один запрос может воспользоваться уже запущенным и кэшируемым для другого запроса. 3