Armazenando em cache resultados intermediários no pipeline Spark ML

Ultimamente, estou planejando migrar meu código ML python autônomo para ativar. O pipeline de ML emspark.ml é bastante útil, com API simplificada para encadear estágios de algoritmos e pesquisa na grade de hiperparâmetros.

Ainda assim, achei seu suporte para um recurso importante obscuro nos documentos existentes:armazenamento em cache de resultados intermediários. A importância desse recurso surge quando o pipeline envolve estágios intensivos de computação.

Por exemplo, no meu caso, uso uma enorme matriz esparsa para executar várias médias móveis em dados de séries temporais, a fim de formar recursos de entrada. A estrutura da matriz é determinada por algum hiperparâmetro. Essa etapa acaba sendo um gargalo para todo o pipeline porque tenho que construir a matriz em tempo de execução.

Durante a pesquisa de parâmetros, normalmente tenho outros parâmetros para examinar além desse "parâmetro de estrutura". Portanto, se eu puder reutilizar a matriz enorme quando o "parâmetro de estrutura" não for alterado, economizarei muito tempo. Por esse motivo, intencionalmente formei meu código para armazenar em cache e reutilizar esses resultados intermediários.

Então, minha pergunta é:O pipeline ML da Spark pode lidar com o cache intermediário automaticamente? Ou preciso formar manualmente o código para fazer isso? Se sim, existe alguma prática recomendada para aprender?

P.S. Examinei o documento oficial e algum outro material, mas nenhum deles parece discutir esse tópico.

questionAnswers(1)

yourAnswerToTheQuestion