Présentation d’Apache Spark
- Historique du framework.
- Les quatre principaux composants : Spark SQL, Spark Streaming, MLlib et GraphX.
- Les outils et les librairies Python pour Spark : PySpark, notebooks Jupyter, Koalas.
- Les concepts de programmation de Spark.
- Exécuter Spark dans un environnement distribué.
Travaux pratiques
Mise en place de l’environnement Python pour Spark. Mise en œuvre de scripts manipulant des concepts de Spark.
Utiliser Spark avec Python : les resilient distributed datasets (RDD)
- Configurer son environnement Python.
- Se connecter à Spark avec Python : les contextes et les sessions.
- Présentation des RDD. Créer, manipuler et réutiliser des RDD.
- Les principales fonctions/transformations, mise en œuvre d’algorithmes de type map/reduce.
- Accumulateurs et variables broadcastées.
- Utiliser des partitions.
- Utiliser les notebooks et soumettre des jobs Python.
Travaux pratiques
Manipulation de contextes et de sessions. Création et réutilisation de RDD. Soumission de travaux.
Manipuler des données structurées
- Présentation de Spark SQL et des DataFrames et datasets.
- Les différents types/formats de sources de données.
- Interopérabilité avec les RDD.
- Utiliser la librairie PySpark Pandas.
Travaux pratiques tutorés
Exécution de requêtes avec Spark SQL. Mise en œuvre de DataFrames et datasets. Manipulation de DataFrame.
Machine learning avec Spark
- Introduction au machine learning.
- Les différentes classes d'algorithmes.
- Présentation de MLlib.
- Implémentation des différents algorithmes dans MLlib.
Travaux pratiques
Mise en œuvre d’apprentissages supervisés au travers d’une classification.
Analyser en temps réel avec Spark Streaming
- Comprendre l’architecture du streaming.
- Présentation des Discretized Streams (DStreams).
- Les différents types de sources.
- Manipulation de l'API (agrégations, watermarking...).
- Machine learning en temps réel.
Travaux pratiques
Création de statistiques en temps réel à partir d’une source de données et prédictions à l’aide du machine learning.
Théorie des graphes
- Introduction à la théorie des graphes (nœuds, arêtes, graphes orientés, chemins, principaux algorithmes).
- Utilisation de l’API.
- Présentation des librairies GraphX et GraphFrame.
Travaux pratiques
Mise en œuvre d’un algorithme de recherche du plus court chemin ou page rank et visualisation du graphe.