Mach es in SQL, im Warehouse. Zwei Milliarden Zeilen passen nicht in den pandas-Speicher, und sie übers Netz zu bewegen ist der langsame Teil. Schieb Filtern, Joinen und Aggregieren in die Engine, die dafür gebaut ist, und hol nur das aggregierte Ergebnis zurück. Nutze pandas oder Polars für die letzte Meile, sobald die Daten klein genug für den Speicher sind.
Warum Interviewer das fragen
Das ist ein praktischer Urteilstest darüber, wo Berechnung stattfinden sollte. Interviewer sehen genug Kandidaten, die reflexhaft Daten in ein Dataframe ziehen und sich dann wundern, warum der Job stirbt. Sie wollen hören: Compute zu den Daten schieben, ein Bewusstsein dafür, was wirklich Zeit kostet (Netzwerktransfer und Shuffles), und eine sinnvolle Grenze, ab wann die Dataframe-Arbeit beginnt.
So baust du deine Antwort auf
- Antworte direkt: im Warehouse aggregieren.
- Erklär, dass Transfer und Speicher der Flaschenhals sind, nicht Compute.
- Sag, was in SQL gehört und was ins Dataframe.
- Erwähn Partition Pruning oder inkrementelle Berechnung zur Kostenkontrolle.
Beispielantwort
SQL, ohne zu zögern. Zwei Milliarden Zeilen gehen auf keiner Maschine, die ich bekomme, in ein pandas-Dataframe, und selbst wenn, würde der Transfer über die Leitung alles andere dominieren. Die Engine ist dafür gebaut, in dieser Größenordnung mit einer Parallelität zu scannen und zu aggregieren, die ich lokal nicht habe. Also schiebe ich Filter, Join und Group By ins Warehouse und hole das Aggregat zurück, das für eine Feature-Tabelle meist ein paar Millionen Zeilen nach Entität und Datum sind, und das passt bequem in den Speicher. Meine grobe Grenze: Alles, was Zeilen reduziert, gehört in SQL, alles, was ein kleines Ergebnis fürs Modellieren formt, gehört nach Python. Kosten sind mir auch wichtig, also achte ich darauf, dass die Query Partitionen auf der Datumsspalte pruned statt die komplette Historie zu scannen, und wenn das Feature täglich neu berechnet wird, baue ich es inkrementell auf und hänge gestern an, statt jeden Morgen drei Jahre neu zu rechnen. In einem Projekt hat das einen Nachtjob von rund vierzig Minuten auf unter drei gebracht und die Rechnung um ungefähr denselben Faktor gesenkt.
Steht dieses Vorstellungsgespräch bald an? GhostPilot hört bei deinem Live-Call mit, erkennt die Frage in dem Moment, in dem sie gestellt wird, und bringt dir eine strukturierte Antwort in Echtzeit auf den Bildschirm. Probier es im nächsten Mock aus, oder hol dir einen $29 Session Pass, kein Abo, für den Ernstfall.
So funktioniert esNachfragen, mit denen du rechnen solltest
- Wie debuggst du eine Query, die plötzlich zehnmal langsamer ist?
- Wann würdest du statt zum Warehouse zu Spark greifen?
- Was würde dich für die letzte Meile Polars statt pandas wählen lassen?
Weitere Fragen für Data Scientist
Dein Interviewer stellt seine eigene Version davon. Kopier deine echte Stellenbeschreibung in den kostenlosen Question Predictor und bekomm die 20 Fragen, die diese Rolle am wahrscheinlichsten stellt, samt dem, worauf jede wirklich abzielt.
Meine Fragen vorhersagen