Aller au contenu

Revue du contenu

Les supports de la formation existaient sous quatre formes : la fiche programme Ambient IT, trois jeux de slides (J1, J2, J3), le dépôt de TP (11 notebooks, corrigés, quiz de fin de journée) et les fiches mémo. Ils ont été produits à des moments différents ; la relecture croisée a fait apparaître des écarts. Cette page les liste, avec la valeur retenue sur le site et la raison du choix. Les slides et le dépôt doivent être alignés sur ces valeurs : ne les corriger que d’un côté recrée l’écart.

SujetAvant (source)Retenu sur le sitePourquoi
Port RPC du NameNode HDFShdfs://namenode:9000 (slide 27 J1, en-tête de tp2_cluster.py) / 8020 (docker-compose.yml et README du TP 3)8020C’est le port par défaut de Hadoop 3 et celui que le compose expose réellement ; 9000 est l’ancienne valeur des tutoriels Hadoop 1/2.
Taille du shuffle TP 2« ≈ 470 Ko contre ≈ 6,5 Ko » (notes des slides J1) ; chiffres différents dans le quiz J1 et la fiche mémo≈ 480 Ko contre ≈ 7 Ko (~70 ×)Valeurs lues dans Spark UI avec le jeu de données livré ; l’ordre de grandeur (~70 ×) est ce qui compte, dit comme tel partout.
R² de la régression avec total_amount0,976 (slides et notebook) mais 0,975 dans une note de slide et 0,98 dans quiz/quiz_jour2.md0,976Valeur du notebook exécuté ; la leçon dit en plus pourquoi ce score est trop beau (fuite de cible).
Pause de l’après-midi J314h45 dans les notes des slides J3 / 15h00 sur le schéma horaire des slides (repris de J2)14h45La Partie 4 a besoin d’une heure pleine avant le QCM de 16h ; la note du formateur le dit, le schéma ne l’avait pas suivi.
Temps CSV vs Parquet (TP 11)Chiffres présents dans les notes (0,4 s / 0,15 s) mais absents de l’énoncé du notebook≈ 0,4 s contre ≈ 0,15 s, soit × 2 à 3 sur le jeu de la formationDonner l’ordre de grandeur attendu dans le TP évite que le participant conclue « Parquet ne change rien » sur 120 000 lignes.
Version de Spark« 3.5 LTS », « 4.0 », « 4.1 », « 4.2 » (capture Spark UI) selon les slides« PySpark 4.x », nouveautés datées (4.0 / 4.1) quand c’est utileLa fiche programme vend Spark 4 ; le numéro exact est dans la slide « Spark 4 en bref », mise à jour à J-7.

Les slides présentaient encore comme actuelles des briques retirées ou dépréciées. Le site les garde (les participants les rencontrent en entreprise) mais les signale explicitement.

NotionStatut 2026Formulation retenue
SQLContext, HiveContextRemplacés par SparkSession depuis 2.0Mentionnés dans la leçon Spark SQL comme « ce que vous verrez dans du vieux code ».
MesosRetiré de Spark 4.0Liste des gestionnaires de cluster : Standalone, YARN, Kubernetes ; Mesos en note historique.
StreamingContext / DStreamsLegacy, plus de nouvelles fonctionnalitésJ3 enseigne Structured Streaming uniquement ; DStreams dans un encadré « héritage ».
Flume + Avro RPCConnecteur retiré en 3.0Cité comme ancêtre de Kafka dans les sources, sans TP.
KNNAlgorithme supervisé, absent de MLlibRetiré de la partie clustering ; la confusion KNN / K-means est au contraire exploitée dans le quiz.
SparkRDéprécié en 4.0Orienté vers sparklyr pour les utilisateurs R.
Deep Learning Pipelines (Databricks)RetiréRemplacé par predict_batch_udf, pandas UDF et TorchDistributor.
TPProblèmeCorrection
TP 7Le notebook demandait de sauvegarder le LinearSVC ; le TP 11 recharge le modèle et lit la colonne probability, que LinearSVC ne produit pas.Le modèle sauvegardé est le Random Forest (out/modele_pourboire).
TP 10Avec Spark 4 en mode ANSI, l’horodatage lu depuis le CSV est de type TIMESTAMP_NTZ ; withWatermark renvoie des fenêtres vides.Cast explicite en timestamp avant le watermark, expliqué dans la leçon.
TP 10Les notes annoncent « 50 lignes ignorées par le watermark » (numRowsDroppedByWatermark) ; l’énoncé du notebook ne le disait pas, et les participants prenaient ce chiffre pour une erreur.Le TP annonce le chiffre attendu et explique qu’il s’agit de logs arrivés avec plus de 2 min de retard.
TP 3SPARK_VERSION du .env.example du compose à aligner manuellement sur le pyspark de requirements.txt ; aucune étape ne le rappelait.Vérification ajoutée dans la checklist J-7 et dans le mode dégradé.
Fiche programme« Clustering : KNN, K-means » — KNN est supervisé et absent de MLlib.KNN retiré de la partie clustering ; la confusion KNN / K-means est exploitée dans le quiz et la fiche mémo J2.
TP 7 (bonus)La grille du CrossValidator était écrite sur rf, le modèle déjà ajusté. Un Param n’est reconnu que si son parent (uid) est l’estimateur du pipeline : les 12 entraînements gardaient les valeurs par défaut, sans erreur.Grille écrite sur un RandomForestClassifier(seed=1) neuf placé dans le pipeline (rf_est), dans le TP et dans le corrigé (.py et notebook).
Partie 3 J3 et Partie 1 J3Extraits de code non exécutables (variables schema, features, traiter non définies ; deux programmes dans un même bloc ; groupBy("Borough") sans la jointure sur les zones ; agrégation sans checkpointLocation).Extraits repris des corrigés TP 9 et TP 11, avec la jointure, le cast de ts, p_pourboire et le checkpoint.
Trigger realTimePrésenté comme mot-clé PySpark de Spark 4.1 ; le mode temps réel date de 4.1 (Trigger.RealTime en Scala/Java) mais le mot-clé Python arrive avec PySpark 4.2.Précisé sur la leçon, la fiche mémo J3 et le glossaire.
Fiches mémo J1–J3Extraits « Code à connaître » sans imports ni provenance ; valeur du join TP 2 (c[2] seul), schéma TP 4 incomplet, ts jamais ajouté au DataFrame (TP 11).Imports communs en tête de section, corrigé source nommé dans chaque commentaire, extraits alignés sur tp2_rdd.py, tp4_sql.py, tp11_ml_streaming_catalyst.py.
Partie 3 J1Encadré « 8020 ou 9000 ? » affirmait que « les deux fonctionnent » ; minutage de la séquence (25 + 50 + 10 min pour un créneau de 2 h) ; spark-submit … tp2.py alors que le script est jour1/TP3_cluster/tp2_cluster.py.9000 présenté comme l’ancien défaut (Hadoop 1 et 2), valable seulement si fs.defaultFS le déclare ; séquence 50 + 50 + 20 min ; chemin réel du script. L’en-tête de tp2_cluster.py dans le dépôt citait encore hdfs://localhost:9000 : corrigé et poussé.
Fil rougeJFK ≈ 261 800 $ (261 823 $ ailleurs) ; /payment « 30 – 38 % » (29–38 % dans le TP 10).Chiffres alignés sur les TP.
TP 6Bonus 2 et 3 réduits à des fragments non exécutables (assembleur jamais entraîné, Bonus 3 en commentaire).Blocs complets repris de tp6_regression.py (df_rc / prep_rc, df_triche).
  • Accroches « Et si… / Comment… » ajoutées en tête de chaque leçon (recommandation du guide formateurs).
  • Critère de réussite visible pour chaque TP (encadré « Vous avez réussi si… ») : le formateur peut demander « Qui a réussi ? » sans ambiguïté.
  • Fil rouge explicite : chaque TP rappelle ce qu’il reçoit du précédent et ce qu’il transmet au suivant.
  • Quiz express à la fin de chaque journée et révision du matin structurée (10 min), plutôt qu’un quiz unique en fin de formation.
  • QCM Qualiopi : la séquence de 16h du jour 3 est protégée dans toutes les versions dégradées du programme.
  • Les 10 quiz de révision et les 200 flashcards sont générés depuis le dépôt (npm run import) : une correction dans la source se propage au site au prochain build.

Le guide formateurs comportait le numéro de portable personnel d’un référent Ambient IT. Il n’est pas repris sur le site : seules la ligne de l’entreprise (01 48 10 09 46) et l’adresse job@ambient-it.net sont publiées.

  • Reporter les chiffres harmonisés dans les slides J1 (slide 27 : port 8020 ; shuffle ≈ 480 Ko / ≈ 7 Ko), J2 (R² 0,976 partout) et J3 (schéma horaire : pause 14h45).
  • Corriger l’en-tête de jour1/TP3_cluster/tp2_cluster.py (hdfs://localhost:9000 → 8020) et quiz/quiz_jour2.md (R² 0,98 → 0,976).
  • Ajouter les encadrés « héritage » dans les slides correspondantes, ou retirer les slides Mesos / Flume.
  • Relire la fiche programme avec Ambient IT : « Clustering : KNN, K-means » à reformuler.

Pour signaler un nouvel écart : noter la page du site, la source en désaccord et la valeur mesurée, puis l’ajouter à cette page lors de la prochaine session.

Dépôts des participants : Spark 4 & ML – formations2026/formation-spark-ml · Prompts IA – formations2026/formation-prompting-ia

Formations sur mesure · supports en ligne des formations animées pour nos clients.