Data Engineering I : Rapport Final

Analyse de la Sécurité Routière aux USA (2016-2023)

Auteurs : Couzinet Lorenzo & Rabahi Enzo

1. Cas d'Usage et Dataset

Objectif : Aider les autorités (DOT) et les assureurs à identifier les zones à haut risque.

  • Source : Kaggle - US Accidents (Sobhan Moosavi).
  • Volumétrie : ~7.7 millions d'enregistrements (3 Go CSV brut).
  • Problèmes identifiés : Fort taux de valeurs nulles (Météo) et typage "String" intégral nécessitant un casting.

2. Organisation du Repository

Structure des fichiers du projet final :

  • Projet/
    • data/ (Données brutes et traitées)
    • outputs/ (Résultats d'export)
    • proof/ (Preuves d'exécution)
    • de1_project_config.yml (Configuration paramétrique)
    • DE1_Project_Notebook_EN.ipynb (Pipeline PySpark principal)
    • DE1_Project_Report.pdf (Rapport PDF complet)
    • project_genai.md (Documentation IA)
    • project_metrics_log (Logs de performance)

3. Architecture Lakehouse (Medallion)

Le pipeline suit l'architecture Bronze-Silver-Gold avec Spark.

🥉 Bronze (Landing)

Ingestion brute CSV. Ajout des colonnes d'audit (ingested_at). Stockage Parquet non partitionné pour la vitesse.

🥈 Silver (Cleaning)

Casting des types (Severity INT, Date Timestamp). Partitionnement initial par State, puis optimisé par Year.

🥇 Gold (Analytics)

Agrégats métier : Accidents par État et tendances mensuelles pour le reporting.

4. Preuves et Métriques (Evidence)

Comparaison de performance sur la requête : "Compter les accidents en 2021".

Phase Fichiers Lus Temps (ms) Observation
Baseline (Part. par State) 10 400 ms Lecture lente (Full Scan)
Optimisé (Part. par Year) 7 43 ms Lecture rapide (Partition Pruning)

L'optimisation par année a permis de réduire drastiquement les I/O grâce au Partition Pruning.