Jour 1 : Prise en main de la plateforme Databricks pour un public déjà codeur
Environnement DatabricksPrésentation de l’architecture Databricks : workspace, notebooks, clusters, jobs
Navigation dans l’interface et organisation des ressources
Gestion des cellules multi-langages
Utilisation de `%python`, `%sql`, `%md` et principes de passage d’un langage à l’autre
Attachement au cluster, choix d’exécution et gestion de session Spark
Premiers réflexes de travail collaboratif et de traçabilité
Lecture des messages d’erreur et relance d’une exécution
Différence entre notebook d’exploration, notebook d’analyse et notebook plus industrialisé
Positionnement des composants : stockage, calcul, notebook, orchestration simple
Présentation des catalogues, schémas, tables et accès aux données dans l’environnement Databricks
Introduction aux widgets, à l’exécution paramétrée et aux premiers usages de JobsRappels Python ciblés DatabricksRappels ciblés sur les structures et patterns utiles dans un notebook Databricks
Fonctions, paramètres, factorisation et organisation du code
Différence entre objets natifs Python et objets manipulés dans pandas ou PySpark
Révision des patterns utiles en notebook : itération, sélection, transformation, contrôleBonnes pratiques de démarrageSéparer exploration, transformation et restitution
Gérer les imports, paramètres et sorties
Introduire une logique de notebook “production-ready” à petite échelle
Comprendre les limites d’un notebook monolithique et préparer sa modularisationAtelier pratique : Premier notebook DatabricksPrise en main du workspace
Attachement au cluster
Création d’un notebook
Exécution de cellules Python et SQL
Adaptation d’un code Python existant au format notebook Databricks
Structuration du notebook en sections de travail
Sauvegarde d’un notebook prêt à être réutiliséJour 2 : PySpark et SQL dans Databricks
Fondamentaux PySparkComprendre la logique DataFrame et le calcul distribué
Lire une table ou un fichier dans Databricks
Inspecter un schéma, sélectionner des colonnes, filtrer des lignes
Créer ou recoder des colonnes avec PySpark
Gérer les valeurs manquantes et les doublons
Produire des agrégations simples
Manipuler `select`, `filter`, `withColumn`, `when`, `alias`, `drop`, `distinct`
Comprendre le typage Spark, les `NULL`, la lazy evaluation et le rôle du plan d’exécution
Introduire les enjeux de partitionnement, coût de calcul et réduction des transformations inutiles
Comprendre le rôle du Catalyst Optimizer et les implications sur l’écriture des transformations
Introduire `cache`, `persist`, `repartition`, `coalesce` selon les cas d’usage simplesSQL dans DatabricksExécuter des requêtes SQL dans un notebook
Utiliser `SELECT`, `WHERE`, `CASE WHEN`, `GROUP BY`, `ORDER BY`
Réaliser des jointures et agrégations multi-niveaux
Passer d’une logique SQL à une logique PySpark
Comparer les usages pertinents de SQL et PySpark selon le besoin
Introduire `JOIN`, `COUNT`, `SUM`, `AVG`, `HAVING` et premières fonctions de fenêtre simples selon le niveau
Lire un besoin métier et choisir le bon niveau d’implémentation : SQL déclaratif, PySpark DataFrame ou Python d’orchestration
Utiliser vues temporaires, tables managées et tables externes selon les scénarios abordésAtelier pratique : Préparer une base d’analyseLecture de sources Databricks et qualification du schéma
Contrôles du schéma et des types
Filtres sur un périmètre d’étude
Création de variables utiles
Agrégations descriptives
Restitution d’un tableau de synthèse avec SQL et PySparkJour 3 : Scripting Python avancé pour Databricks
Techniques de scripting plus avancéesStructurer un code en fonctions réutilisables et blocs logiques
Passer des paramètres pour rendre un traitement adaptable
Utiliser `try/except` pour sécuriser une exécution
Travailler avec listes, dictionnaires et boucles pour automatiser
Produire un code plus lisible, plus testable et plus maintenable
Organiser un notebook pour éviter duplication et dette technique
Introduire la décomposition d’un traitement en fonctions métier, fonctions utilitaires et cellules d’orchestration
Utiliser `if __name__ == "__main__"` et les modules simples lorsque le contexte s’y prête
Écrire des fonctions documentées, avec signatures claires et valeurs de retour explicites
Introduire les premiers réflexes de refactorisation : nommage, granularité des fonctions, séparation des responsabilités
Préparer la transition d’un notebook vers un code plus modulaire
Introduire des helpers réutilisables pour lecture, contrôle, transformation et restitutionExploration et préparation de données avec PythonAudit de structure et de contenu d’un dataset
Statistiques descriptives utiles à l’exploration
Détection de valeurs manquantes, atypiques ou incohérentes
Création de variables dérivées pour enrichir l’analyse
Utilisation de `pandas` pour des analyses locales : `head`, `info`, `describe`, `value_counts`, `groupby`
Articulation entre Spark pour le volume et pandas pour l’exploration ciblée
Premiers contrôles sur distributions, cardinalités et cohérence métier
Préparer un dataset d’exploration lisible avant visualisation ou première modélisation
Utiliser `toPandas()` avec discernement et comprendre ses limites en contexte clusterVisualisation de donnéesChoisir un graphique pertinent selon la question posée
Construire des histogrammes, bar charts, boxplots, scatter plots
Lire les distributions, comparaisons et relations entre variables
Produire des visualisations utiles à la décision
Utilisation de `matplotlib` et, si souhaité, `seaborn` pour accélérer la production de graphiques lisibles
Préparer des graphiques à partir de données agrégées issues de pandas ou PySpark
Mettre en place une logique de visualisation reproductible : fonctions de tracé, styles, paramètres communs
Préparer une logique de visualisation compatible avec notebook de partage ou revue entre pairsAtelier pratique : Notebook d’exploration et visualisationStructuration du notebook en étapes d’exploration
Écriture de fonctions utilitaires pour les contrôles
Analyse descriptive structurée du dataset
Détection d’anomalies ou signaux faibles
Production d’un premier lot de graphiques commentésJour 4 : MLflow et optimisation des workflows Databricks
Suivi d’expérimentations avec MLflowComprendre la logique d’un workflow simple de machine learning dans Databricks
Préparer un jeu de données pour un premier modèle supervisé
Entraîner un modèle supervisé de référence avec une bibliothèque Python usuelle
Suivre les paramètres, métriques et artefacts avec MLflow
Lire les résultats et limites d’un modèle exploratoire
Exemple de modèle possible : régression logistique ou arbre de décision selon le jeu de données
Introduction au découpage apprentissage/test, aux métriques de base et à la traçabilité des essais
Journalisation dans MLflow : paramètres, métriques, modèle et artefacts simples
Comprendre la place de MLflow dans un cycle d’expérimentation : comparabilité, traçabilité, reproductibilité
Lire une exécution MLflow dans Databricks et comparer plusieurs runsOptimisation de notebooks et traitements DatabricksIdentifier les points de coût dans un notebook PySpark ou SQL
Réduire les transformations inutiles et limiter les actions coûteuses
Utiliser `cache`, `persist`, `repartition`, `coalesce` de manière pertinente
Éviter les conversions prématurées vers pandas
Mieux organiser un notebook pour améliorer lisibilité, maintenabilité et performance
Exploiter les logs, plans d’exécution et contrôles intermédiaires pour fiabiliser les traitements
Introduire des pratiques de paramétrage et de factorisation favorables à la réutilisation
Préparer un notebook plus robuste pour un usage récurrent en équipeAtelier pratique : Expérimentation suivie avec MLflow et optimisation d’un notebookSélection d’un périmètre et de variables explicatives
Entraînement d’un modèle de référence
Enregistrement des essais dans MLflow
Comparaison élémentaire des métriques
Identification de points d’optimisation dans le notebook
Amélioration de l’organisation et de l’exécution du traitement
Restitution des résultats et discussion des limites