Jour 1 – Introduction à Scala pour Data Scientists
- Contexte et positionnement de Scala
- Historique et cas d'usage
- Intérêt de Scala dans un environnement Spark
- Scala vs Python pour la data science
Syntaxe de base Scala
- Variables, types, expressions
- Fonctions : déclaration, expression lambda
- Structures de contrôle (if, match, for, while)
Collections et manipulation de données
- List, Set, Map, Tuple
- Immutabilité, transformation avec map, filter, flatMap
- Comparaison avec les outils Python : pandas, list comprehension, etc.
Premiers pas sur Databricks (support de la formation)
- Notebooks Scala
- Chargement de fichiers simples (CSV, JSON)
- Affichage de données tabulaires
Exercices pratiques : mini-notebooks de manipulation de données (prétraitement, parsing, regroupement)
Jour 2 – Paradigmes et structuration du code Scala
- Fonctionnel vs impératif
- Réduction des effets de bord
- Fonctions pures, immutabilité, fonctions d'ordre supérieur
- Illustration sur des transformations de données
Pattern matching avancé
- Cas d'usage sur des structures de données complexes (JSON, vecteurs, etc.)
- Comparaison avec les structures conditionnelles Python
Modélisation avec classes et objets
- case class pour modéliser des données typées
- companion object, méthodes utilitaires
- Introduction à la POO en Scala
Gestion fonctionnelle des erreurs
- Option, Some, None dans le prétraitement
- Try, Success, Failure dans les chargements et conversions de données
Exercices pratiques : pipeline de préparation de données (nettoyage, enrichissement, typage)
Jour 3 – Scala pour la data science avec Spark (préparation)
- Structuration de notebooks Scala pour Spark
- Organisation du code (fonctions réutilisables, séparations logiques)
- Bonnes pratiques de structuration des notebooks
Lecture/écriture de données
- Chargement de données CSV, JSON, Parquet
- Préparation des données avant modélisation
- Export de résultats typés
Interopérabilité et pratique mixte Scala/Python (si utile)
- Notebooks mixtes via %python, %scala
- Cas d'usage : Scala pour les prétraitements, Python pour les modèles
Projet final – Atelier Scala data science (sans Spark API avancée)
- Objectif : simuler un pipeline data science complet (chargement, nettoyage, enrichissement)
- Structuration idiomatique Scala pour une future utilisation avec Spark
Exercice final : pipeline Scala préparatoire à un traitement Spark distribué