A través de este curso los alumnos aprenderán a programar con Apache Spark, la solución más eficiente y popular para procesar enormes cantidades de datos en clusters de cientos de máquinas.
Spark es hasta 100 veces más rápido que Apache Hadoop si el procesamiento se hace en memoria y 10 veces más rápido si se hace en disco. Para conseguir este rendimiento, Spark incorpora un motor de ejecución avanzado basado en Grafos Dirigidos Acíclicos (DAGs) de tareas que permite el flujo de datos acíclico u la computación en memoria.
Spark es fácil de usar, y permite utilizar diferentes lenguajes de programación, en concreto Python, Scala, Java o R. Ofrece más de 80 operadores de alto nivel que facilitan la creación de programas paralelos escalables a cientos o miles de máquinas. Y es posible utilizarlo de forma interactiva mediante los interpretes de Python, Scala o R, o utilizando herramientas como Apache Zeppelin, como veremos en este curso.
Spark se puede ejecutar en un PC simple, en un cluster con Hadoop YARN o Apache Mesos, o en la nube, con soluciones como Amazon Elastic MapReduce o Microsoft HDInsight. Y puede acceder a datos almacenados el HDFS, Cassandra, HBase, Hive, Tachyon y cualquier fuente de datos accesible por Hadoop.
Empezaremos viendo los elementos básicos de la programación Spark: los RDDs o Resilient Distributed DataSets. Veremos como crearlos, transformarlos y operar con ellos para procesar nuestros archivos.Continuaremos viendo aspectos avanzados para mejorar y optimizar nuestros códigos Spark y finalizaremos adentrándonos en el conjunto de soluciones de alto nivel de Spark: Spark SQL, Spark Streaming, Spark ML para problemas de Machine Learning, y GraphX para procesamiento de grafos. Todas estas soluciones pueden combinarse en la misma aplicación para alcanzar nuestros objetivos.