A travs de este curso los alumnos aprendern a programar con Apache Spark, la solucin ms eficiente y popular para procesar enormes cantidades de datos en clusters de cientos de mquinas. Spark es hasta 100 veces ms rpido que Apache Hadoop si el procesamiento se hace en memoria y 10 veces ms rpido si se hace en disco. Para conseguir este rendimiento, Spark incorpora un motor de ejecucin avanzado basado en Grafos Dirigidos Acclicos (DAGs) de tareas que permite el flujo de datos acclico u la computacin en memoria. Spark es fcil de usar, y permite utilizar diferentes lenguajes de programacin, en concreto Python, Scala, Java o R. Ofrece ms de 80 operadores de alto nivel que facilitan la creacin de programas paralelos escalables a cientos o miles de mquinas. 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 bsicos de la programacin 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 cdigos Spark y finalizaremos adentrndonos 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 aplicacin para alcanzar nuestros objetivos.