miércoles
21 AbrMódulo 11. Procesamiento de Datos Escalable: Machine Learning y Streaming
Este nuevo módulo tiene una duración de 2 semanas, la primera semana se dedicará a SparkML, el componente de Spark que ofrece algoritmos de clasificación y clustering. ¡
En la segunda se estudiarán dos tecnologías: Spark structured streaming y Apache Flink.
El objetivo del módulo es adquirir y asimilar los fundamentos básicos para poder desarrollar aplicaciones escalables con las herramientas estudiadas.
Este módulo será implantado por Antonio Jesús Nebro Urbaneja (antonio@lcc.uma.es) y Cristóbal Barba González (cbarba@lcc.uma.es).
Antonio Jesús Nebro es Dr. Ingeniero en Informática (PhD in Computer Science) y Catedrático de Universidad (Full Professor). Experto en aplicación de técnicas de optimización y paralelismo en el contexto de aplicaciones del Big Data.
Página personal.
Cristóbal Barba González es experto en aplicación de la semántica al análisis del Big Data y en el desarrollo de matauristicas multiobjetivo. Página personal.
En este módulo se va a trabajar con tecnologías de procesamiento de datos escalables en dos ámbitos: machine learning y streaming. La primera semana se dedicará a SparkML, el componente de Spark que ofrece algoritmos de clasificación y clustering. En la segunda se estudiarán dos tecnologías: Spark structured streaming y Apache Flink. El objetivo del módulo es adquirir y asimilar los fundamentos básicos para poder desarrollar aplicaciones escalables con las herramientas estudiadas.
Tecnologías: Spark, Flink, Java, Python, Intellij Idea, PyCharm
Pre-Requisitos: Conocimientos básicos de programación en Java y Python y haber asimilado los contenidos del módulo de Spark.
Planificación docente
Clase 1: Introducción a Spark ML. API basada en dataframes y los algoritmos de machine learning disponibles. Ejemplos con SVM y Kmeans.
Trabajo previo necesario:
- http://spark.apache.org/docs/latest/ml-guide.html
- http://spark.apache.org/docs/latest/structured-streaming-programming-guide.html
- https://flink.apache.org/
Tarea 1 (Mandatory): Clustering usando el algoritmo bisecting kmeans.
Tarea 2 (Mandatory): Clasificación con árboles de decisión.
Clase 2: Spark ML avanzado. Pipelines. Extracción, transformación y selección de características.
Tarea 3 (Advanced): Clustering sobre datos de crímenes de Chicago desarrollando un notebook con Jupyter.
Tarea 4 (Advanced). Estudio del rendimiento computacional de algoritmos de Spark ML
Clase 3: Consolidación de conocimientos.
Tarea 5 (Challenge): Motor de recomendación de contenidos.
Clase 4: Introducción a Spark Structured Streaming. Conceptos básicos. Modelo de programación. Operaciones básicas
Trabajo previo necesario
- Introducción a dataframes en Spark (https://databricks.com/blog/2015/02/17/introducing-dataframes-in-spark-for-large-scale-data-science.html)
- Documentación sobre SQL, dataset y dataframes (https://spark.apache.org/docs/latest/sql-programming-guide.html)
Tarea 6 (Mandatory): Extracción de datos en streaming de plazas de aparcamientos públicos del portal de datos abiertos del ayuntamiento de Málaga.
Clase 5: Spark structured streaming avanzado. Operaciones con ventanas. Gestión de datos retrasados.
Tarea 7 (Advanced): Procesamiento de datos en streaming usando ventanas de tiempo.
Tarea 8 (Challenge): Análisis de datos de aparcamientos del ayuntamiento de Málaga. La aplicación deberá leer los datos con determinada frecuencia usando una ventana de tiempo y deberá realizar cálculos estadísticos en cada lectura de datos.
Clase 6: Introducción a Apache Flink. Conceptos básicos para procesamiento de datos en batch y en streaming.
Trabajo previo necesario
- Instalación de Flink
- https://flink.apache.org/
- https://why-not-learn-something.blogspot.com/2018/03/spark-streaming-vs-flink-vs-storm-vs.html
Tarea 9 (Advanced): Análisis de datos usando Flink en una aplicación que simula la lectura de datos de temperaturas de sensores.
Deja un comentario