Un motor de análisis unificado para el procesamiento de datos distribuidos a gran escala con API en Java, Scala, Python y R para procesamiento por lotes, transmisión, aprendizaje automático y gráficos.
Apache Spark es un motor de análisis de código abierto que se usa para cargas de trabajo de big data. Puede manejar cargas de trabajo tanto por lotes como de análisis en tiempo real y de procesamiento de datos. Apache Spark comenzó en 2009 como un proyecto de investigación en la Universidad de California, Berkeley. Los investigadores buscaban una manera de acelerar los trabajos de procesamiento en los sistemas de Hadoop. Se basa en Hadoop MapReduce y extiende el modelo MapReduce para usarlo de forma eficiente en más tipos de cómputos, lo que incluye consultas interactivas y procesamiento de streaming. Spark proporciona vinculaciones nativas para los lenguajes de programación Java, Scala, Python y R. Además, incluye varias bibliotecas para admitir la creación de aplicaciones para el aprendizaje automático [MLlib], el procesamiento de transmisiones [Spark Streaming] y el procesamiento de grafos [GraphX]. Apache Spark consta de Spark Core y un conjunto de bibliotecas. Spark Core es el corazón de Apache Spark y es responsable de proporcionar la transmisión de tareas distribuidas, la programación y la funcionalidad de I/O. El motor de Spark Core usa el concepto de conjunto de datos distribuido y resiliente (RDD) como su tipo de datos básico. El RDD está diseñado para ocultar la mayor parte de la complejidad computacional a sus usuarios. Spark opera sobre los datos de forma inteligente; los datos y las particiones se agregan en un clúster de servidores, donde pueden procesarse y, luego, moverse a otro almacén de datos o ejecutarse a través de un modelo analítico. No se te pedirá que especifiques el destino de los archivos o los recursos computacionales que deben usarse para almacenar o recuperar archivos. 