Spark provee 2 tipos de variables compartidas para hacer más eficiente correr spark en un cluster. Hay variables broadcasts y accumutators.
La variable
broadcasts, permite a los desarrolladores tener las variables de solo
lectura almacenadas en caché en cada máquina en local. Se pueden
usar para dar más eficientemente copias de conjuntos de datos de
entrada grande a los nodos en el clúster.
Variable accumutators, usan una operación asociativa y, por lo tanto, pueden
ser soportados de manera eficiente en paralelo. Se pueden usar para
implementar contadores (como en MapReduce) o sumas. Las tareas que se
ejecutan en el clúster pueden agregarse a una variable de acumulador
mediante el método de agregar. Sin embargo, no pueden leer su valor.
Solo el programa del controlador puede leer el valor del acumulador.