Aller au contenu

Le fil rouge : les taxis jaunes de New York

Toute la formation travaille sur un seul jeu de données : les courses de taxis jaunes de New York, au format officiel des « Yellow Taxi Trip Records » de la NYC Taxi & Limousine Commission (TLC). Le dépôt fournit un jeu synthétique de 120 000 courses sur un mois (janvier 2024), généré par scripts/generate_data.py : mêmes 19 colonnes, mêmes types, mêmes ordres de grandeur que les données réelles, assez petit pour un portable et pour Git, assez réaliste pour que les résultats aient du sens (JFK et LaGuardia en tête du chiffre d’affaires, pics à 8 h et 18 h, forfait aéroport à 70 $).

Pour travailler sur les données réelles (un mois ≈ 3 millions de courses) : python scripts/download_official.py --year 2024 --month 1 --rows 300000

FichierContenuUtilisé par
data/trips.csv120 000 courses, 19 colonnes, 12 Mo – pour les RDD et les comparaisons CSV / ParquetTP 1, 2, 3, 11
data/trips.parquetLes mêmes courses au format colonne, schéma embarqué, 3,4 MoTP 1, 4 à 11
data/taxi_zone_lookup.csvRéférentiel public TLC : LocationID → Borough, Zone, service_zone (265 zones)TP 2, 4, 6, 7, 8, 9
stream/courses/, stream/logs/Produits par scripts/stream_simulator.py : les courses et les logs arrivent fichier par fichier, comme en productionTP 9, 10, 11
ColonneSignificationIndex CSVRôle dans la formation
tpep_pickup_datetimeDate et heure de prise en charge (heure locale, sans fuseau)1Heure de la course, fenêtres de streaming
trip_distanceDistance en miles4Feature principale de la régression
PULocationIDZone de départ (1 à 265)7Clé du top 10, jointure avec les zones
DOLocationIDZone d’arrivée8Arêtes du graphe (GraphFrames)
RatecodeIDCode tarifaire (1 = standard, 2 = forfait JFK)5Bonus du TP 6 : la feature métier qui divise l’erreur par deux
passenger_countNombre de passagers3Feature secondaire
payment_type1 = carte, 2 = espèces9Filtre du TP 7 : les pourboires en espèces ne sont pas enregistrés
fare_amountTarif au compteur ($)10Label de la régression (TP 6)
tip_amountPourboire ($)13Label de la classification : tip_amount > 0 (TP 7)
total_amountMontant total payé ($)16Chiffre d’affaires du top 10 ; fuite si utilisé comme feature

Les index sont ceux de line.split(",") sur trips.csv, à partir de 0 : les RDD du TP 2 utilisent c[7] et c[16].

JourQuestionTPRéponse attendue
J1Quelles zones de New York rapportent le plus ?2, 3, 4JFK Airport en tête (≈ 261 823 $), puis LaGuardia et Midtown
J1À quelle heure le chiffre d’affaires est-il maximal ?418 h (≈ 237 600 $), puis 19 h et 17 h
J2Combien va coûter cette course ?6Arbre de régression : RMSE ≈ 4,66 $, R² ≈ 0,935
J2Ce client laissera-t-il un pourboire ?7Random Forest : AUC ≈ 0,70 sur les paiements par carte
J2Quelles familles de courses ?83 familles : courtes du matin, courtes du soir, longues / aéroport
J3Quel est le chiffre d’affaires par quartier, en direct ?9Manhattan loin devant, mise à jour toutes les 5 s
J3Une panne du paiement a-t-elle lieu ?10Oui : /payment passe de ≈ 1 % à 29–38 % d’erreurs de 8h22 à 8h25
J3Le modèle de pourboire tient-il sur le flux ?11Oui : écart moyen prédit / réel ≈ 0,21 par fenêtre de 30 min

Plutôt qu’une succession d’exercices « Hello World » déconnectés, un projet unique où le participant monte en autonomie et a le sentiment d’avoir construit quelque chose de bout en bout. Le même jeu de données permet aussi de comparer sans introduire de biais : RDD contre DataFrame (TP 2 et 4), CSV contre Parquet (TP 1 et 11), régression linéaire contre arbre (TP 6), batch contre streaming (TP 9).

Contenu pédagogique © Ambient IT. Données synthétiques générées par scripts/generate_data.py. Les noms de zones proviennent du référentiel public de la NYC TLC.

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.