Spark mejora MapReduce con menos costos de procesamiento de datos.
Con capacidades como el almacenamiento de datos en memoria y el procesamiento casi en tiempo real, puede ejecutarse varias veces más rápido que otras tecnologías de big data.
Spark también soporta evaluación perezosa de consulta big-data, lo que ayuda a optimizar los pasos en los flujos de trabajo de procesamiento de datos. Proporciona una API de nivel superior para mejorar la productividad del desarrollador y una arquitectura coherente para soluciones de big-data.
Spark guarda los resultados intermedios en memoria en lugar de escribirlos en el disco, lo que es eficiente, especialmente cuando tenemos que trabajar en el mismo conjunto de datos varias veces. Está diseñado para ser un motor de ejecución que funciona tanto en la memoria como en el disco. Los operadores de Spark realizan operaciones externas cuando los datos no entran en la memoria. Spark se puede usar para procesar conjuntos de datos que exceden la memoria agregada en un cluster.
Spark intentará almacenar tantos datos en la memoria como sea posible y luego guardara en disco. Puede almacenar parte de un conjunto de datos en la memoria y los datos restantes en el disco. Con este almacenamiento de datos en memoria luego en disco, Spark consigue la ventaja de rendimiento.
Otras características incluyen:
- Soporta más que las funciones map y reduce
- La Api soporta Scala, Java y Python
- La consola interactiva soporta Scala y Python.
Spark fue escrito en Scala por lo que corre en la JVM y actualmente soporta para el desarrollo:
- Scala
- Java
- Python
- R
- Clojure y los lenguajes soportados por la Jvm