Spark pour la data science
Objectifs pédagogiques
- Comprendre l’architecture de Spark et ses concepts fondamentaux.
- Manipuler des données efficacement avec les API structurées (DataFrames, SQL).
- Réaliser des transformations avancées et gérer des jointures complexes.
- Explorer des cas d’utilisation avancés tels que le streaming structuré et l’apprentissage automatique (MLlib).
- Améliorer les performances des pipelines de traitement des données.
Programme détaillé
Découvrir les bases de Spark 6h
- Introduction : vision et architecture de Spark
- Prise en main : configuration de Spark, démarrage de SparkSession
- Manipulation de données : création et transformation de DataFrames, utilisation de SQL
- Travail avec les formats de données : JSON, CSV, Parquet
- Concepts clés : partitionnement, transformations paresseuses et actions
Approfondir et pratiquer 6h
- Joins et agrégations avancées : techniques et optimisation
- Streaming structuré : introduction au traitement des flux de données en temps réel
- Machine learning avec MLlib : mise en œuvre de modèles de régression, classification et recommandation
- Optimisation : techniques de tuning, variables de diffusion et partitionnement
- Études de cas pratiques
Public visé
Cette formation s’adresse à tous les professionnels débutant sur Spark souhaitant se familiariser avec le traitement de données massives. Elle est particulièrement adaptée aux ingénieurs data, data scientists et data analysts.
Prérequis
Connaissances de base en programmation Python et en manipulation de données.
Approche pédagogique
Calculés à partir de 37 avis recueillis depuis 25/01/2018, lors de 6 sessions de cette formation.
Apache Spark : pourquoi il a supplanté MapReduce
Pour comprendre Spark, il faut repartir du problème qu’il a résolu. Au milieu des années 2000, le traitement de données massives repose sur MapReduce, un modèle de calcul décrit par Google en 2004 et popularisé par son implémentation libre, Hadoop. Le principe est robuste : découper un calcul en étapes map et reduce réparties sur des centaines de machines. Mais chaque étape écrit ses résultats intermédiaires sur disque avant que la suivante ne les relise.
Le goulot des algorithmes itératifs
Cette contrainte pèse peu pour un traitement en une seule passe. Elle devient rédhibitoire pour la data science : un algorithme d’apprentissage parcourt les mêmes données des dizaines de fois, et une analyse exploratoire enchaîne les requêtes. En 2009, à l’AMPLab de l’université de Berkeley, Matei Zaharia et son équipe conçoivent un modèle qui conserve les données en mémoire entre les étapes, tout en restant tolérant aux pannes : si une machine tombe, Spark recalcule la partie perdue à partir de la chaîne des transformations qui l’ont produite, plutôt que de tout sauvegarder sur disque.
Paresse et optimisation
De ce choix découle un trait qui déroute souvent les débutants : les transformations Spark sont paresseuses. Filtrer, joindre ou agréger ne déclenche aucun calcul ; Spark se contente d’enregistrer un plan, qui n’est exécuté que lorsqu’une action réclame un résultat (afficher, compter, écrire un fichier). Cette attente a une raison : connaissant le plan complet, l’optimiseur peut réordonner les opérations, éviter les lectures inutiles et limiter les échanges de données entre machines, qui constituent le principal coût d’un calcul distribué.
De Berkeley au standard du traitement à grande échelle
Devenu projet de premier niveau de la fondation Apache en 2014, Spark s’est progressivement doté d’interfaces de haut niveau : DataFrames et SQL, apprentissage automatique (MLlib), traitement de flux avec le Structured Streaming. Sa version 4.0, publiée en 2025, confirme sa place de moteur de référence, qu’il tourne sur un cluster d’entreprise ou sur les grandes plateformes cloud, et son interface Python, PySpark, permet de l’utiliser sans quitter l’écosystème de la data science.