Aller au contenu

Quiz du jour 3

  • Hier en 10 minutes · 9h05
  • Quiz flash · partie 2, 11h52
  • Questions des partages · TP 9 à 11

Cliquez sur une question pour voir la réponse.

StringIndexer, VectorAssembler : Estimator ou Transformer ? StringIndexer est un Estimator : il apprend la liste des catégories. VectorAssembler est un Transformer.
Une RMSE de 4,66 $ : qu'est-ce que cela veut dire ? Le modèle se trompe en moyenne d'environ 4,66 $ sur des courses jamais vues, en pénalisant les grosses erreurs.
Une AUC de 0,5 : que fait le modèle ? Il répond au hasard.
Citez une fuite de données vue hier total_amount pour prédire le tarif ; payment_type pour prédire le pourboire (les pourboires en espèces ne sont pas enregistrés).
Pourquoi normaliser avant K-means ? Sinon la variable à la plus grande échelle (le montant en dollars) écrase les autres dans la distance euclidienne.
1. Mon agrégation en mode append n'écrit rien dans le Parquet. Pourquoi ?

Les fenêtres ne sont pas encore closes (le watermark ne les a pas dépassées), ou il n’y a pas de watermark du tout : Spark refuse alors le mode append sur une agrégation.

2. Ma requête redémarre après une panne. Recommence-t-elle depuis le début ?

Non, si un checkpoint est configuré : elle reprend aux derniers offsets enregistrés, avec son état. Sans checkpoint, elle repart de zéro.

3. Une ligne arrive avec 10 min de retard, watermark de 2 min. Que devient-elle ?

Elle est ignorée (comptée dans numRowsDroppedByWatermark). Pour ne rien perdre : tolérance plus longue, ou rattrapage en batch.

4. count(distinct user) sur un flux : possible ?

Non : les agrégations distinctes exactes ne sont pas supportées en streaming. approx_count_distinct (HyperLogLog) l’est.

TP 9 – Le batch donne-t-il le même résultat que le stream ? Oui : le streaming est un batch incrémental. Si le stream compte moins, c'est qu'il a pris du retard (2 fichiers par micro-batch de 5 s contre 1 fichier toutes les 2 s) ; il rattrape une fois le simulateur arrêté.
TP 10 – Pourquoi 8h27–8h29 n'apparaissent-elles pas dans le Parquet ? Fenêtres pas encore closes en mode append : le watermark ne les a pas dépassées.
TP 10 – Watermark de 2 ou 10 min pour une alerte ? Court pour la réactivité. Long, ou un batch de rattrapage, pour l'exhaustivité (facturation).
TP 11 – Parquet 2 à 3 fois plus rapide alors que Catalyst pousse le filtre en CSV aussi ? Format colonne (3 colonnes lues sur 19), statistiques min/max pour sauter des blocs, lecture vectorisée. Le CSV doit lire et découper chaque ligne.
TP 11 – Comment réduire le bruit du taux prédit par fenêtre ? Fenêtres plus longues, agréger plusieurs quartiers, afficher un intervalle de confiance.
TP 11 – Pourquoi la moyenne de p_pourboire plutôt que des prédictions 0/1 ? La moyenne des probabilités estime directement un taux comparable au taux réel. Les 0/1 dépendent du seuil et surestiment systématiquement.
Une correction possible Tableau de bord à 5 s et alertes : Kappa (Kafka → Structured Streaming). Facturation mensuelle exacte : job batch sur les données archivées (Parquet / Delta). Architecture hybride, très fréquente. Valoriser la justification plutôt qu'une « bonne réponse ».

Pour aller plus loin : les quiz de révision 9 et 10 (20 questions chacun, corrigé détaillé), puis le QCM de validation à 16h.

Dépôt des participants : formations2026/formation-spark-ml (branche participants)

Contenu pédagogique © Ambient IT · 140 Avenue Jean Lolive, 93500 Pantin · formation@ambient-it.net · +33 (0)1 48 10 09 46

Organisme de formation enregistré sous le numéro 11 75 54743 75. Cet enregistrement ne vaut pas agrément de l'État.