¿ForeachRDD se ejecuta en el controlador?

Estoy tratando de procesar algunos datos XML recibidos en una cola JMS (QPID) usando Spark Streaming. Después de obtener xml como DStream, los convierto en Dataframes para poder unirlos con algunos de mis datos estáticos en forma de Dataframes ya cargados. Pero según la documentación de la API para el método foreachRdd en DStream: se ejecuta en el controlador, lo que significa que toda la lógica de procesamiento solo se ejecutará en el controlador y no se distribuirá a los trabajadores / ejecutores.

Documentación API

foreachRDD(func)

El operador de salida más genérico que aplica una función, func, a cada RDD generado a partir de la secuencia. Esta función debe enviar los datos de cada RDD a un sistema externo, como guardar el RDD en archivos o escribirlo a través de la red en una base de datos. Tenga en cuenta que la función func se ejecuta en el proceso del controlador que ejecuta la aplicación de transmisión, y generalmente tendrá acciones de RDD que forzarán el cálculo de los RDD de transmisión.

Respuestas a la pregunta(2)

Su respuesta a la pregunta