Almacenamiento en caché de resultados intermedios en la tubería de Spark ML

Últimamente estoy planeando migrar mi código ML de Python independiente para generar. La tubería de ML enspark.ml Resulta bastante útil, con API optimizada para encadenar etapas de algoritmo y búsqueda de cuadrícula de hiperparámetros.

Aún así, su soporte para una característica importante es oscuro en los documentos existentes:almacenamiento en caché de resultados intermedios. La importancia de esta característica surge cuando la tubería involucra etapas intensivas de computación.

Por ejemplo, en mi caso utilizo una enorme matriz dispersa para realizar promedios móviles múltiples en datos de series de tiempo para formar entidades de entrada. La estructura de la matriz está determinada por algún hiperparámetro. Este paso resulta ser un cuello de botella para toda la tubería porque tengo que construir la matriz en tiempo de ejecución.

Durante la búsqueda de parámetros, generalmente tengo otros parámetros para examinar además de este "parámetro de estructura". Entonces, si puedo reutilizar la enorme matriz cuando el "parámetro de estructura" no cambia, puedo ahorrar toneladas de tiempo. Por esta razón, formé intencionalmente mi código para almacenar en caché y reutilizar estos resultados intermedios.

Entonces mi pregunta es:la tubería ML de Spark puede manejar el almacenamiento en caché intermedio automáticamente? ¿O tengo que formar manualmente el código para hacerlo? Si es así, ¿hay alguna mejor práctica para aprender?

PD He examinado el documento oficial y algún otro material, pero ninguno de ellos parece discutir este tema.

Respuestas a la pregunta(1)

Su respuesta a la pregunta