Pregunta de entrevista para Científico de datos

Necesitas agregar dos mil millones de filas para una variable. ¿Lo haces en SQL o lo traes a pandas?

Qué evalúa el entrevistador, cómo estructurar tu respuesta y un ejemplo hablado que puedes adaptar.

Respuesta rápida

Hazlo en SQL, dentro del warehouse. Dos mil millones de filas no caben en la memoria de pandas y moverlas por la red es la parte lenta. Empuja el filtrado, el join y la agregación al motor, que está hecho para eso, y trae de vuelta solo el resultado agregado. Usa pandas o Polars para el último tramo, cuando los datos ya sean lo bastante pequeños para caber cómodamente en memoria.

Por qué lo preguntan los entrevistadores

Esta es una comprobación de criterio práctico sobre dónde debe ocurrir el cómputo. Los entrevistadores ven a muchos candidatos que por reflejo se traen los datos a un dataframe y luego se preguntan por qué muere el job. Quieren oír que llevas el cómputo a los datos, conciencia de qué cuesta tiempo de verdad (la transferencia por red y los shuffles), y una frontera sensata para dónde empieza el trabajo con dataframes.

Cómo estructurar tu respuesta

  • Responde directamente: agrega en el warehouse.
  • Explica que el cuello de botella es la transferencia y la memoria, no el cómputo.
  • Di qué corresponde a SQL y qué al dataframe.
  • Menciona la poda de particiones o el cálculo incremental para controlar el coste.

Ejemplo de respuesta

Ejemplo hablado, en primera persona

SQL, sin dudarlo. Dos mil millones de filas no van a entrar en un dataframe de pandas en ninguna máquina que me vayan a dar, y aunque entraran, la transferencia por el cable dominaría todo lo demás. El motor está diseñado para escanear y agregar a esa escala con un paralelismo que yo no tengo en local. Así que empujo el filtro, el join y el group by al warehouse y me traigo el agregado, que para una tabla de variables suelen ser unos pocos millones de filas indexadas por entidad y fecha, y eso cabe cómodamente en memoria. Mi frontera aproximada es que todo lo que reduzca filas va en SQL, y todo lo que dé forma a un resultado pequeño para modelar va en Python. También me importa el coste, así que me aseguro de que la consulta pode particiones por la columna de fecha en vez de escanear todo el histórico, y si la variable se recalcula a diario la construyo de forma incremental, añadiendo el día anterior en lugar de recalcular tres años cada mañana. En un proyecto ese cambio llevó un job nocturno de unos cuarenta minutos a menos de tres, y recortó la factura más o menos en el mismo factor.

¿Tienes esta entrevista a la vuelta de la esquina? GhostPilot escucha tu llamada en vivo, detecta la pregunta en cuanto la hacen y pone una respuesta estructurada en tu pantalla en tiempo real. Pruébalo en tu próxima entrevista de práctica, o coge un Session Pass de $29, sin suscripción, para la de verdad.

Mira cómo funciona

Preguntas de seguimiento que puedes esperar

  • ¿Cómo depurarías una consulta que de repente se volvió diez veces más lenta?
  • ¿Cuándo recurrirías a Spark en lugar del warehouse?
  • ¿Qué te haría elegir Polars sobre pandas para el último tramo?

Más preguntas para Científico de datos

Tu entrevistador hará su propia versión de esta. Pega la descripción real del puesto en el Question Predictor gratuito y obtén las 20 preguntas que ese puesto tiene más probabilidades de hacerte, con lo que cada una busca en realidad.

Predecir mis preguntas

Ensaya las preguntas difíciles antes de que te las hagan

Practica con un copiloto en vivo y entra preparado. Un Session Pass de $29 te lleva a través de la entrevista sin suscripción y sin ataduras.

Consigue GhostPilot