La primera pregunta real es por qué las personas son más productivas con las abstracciones de DataFrame que las abstracciones de SQL puro.
TLDR; SQL no está orientado al desarrollo (humano) y al proceso de depuración, los DataFrames sí.
La razón principal es que las abstracciones de DataFrame le permiten construir sentencias SQL mientras evita el anidamiento detallado e ilegible. El patrón de escribir rutinas anidadas, comentarlas para verificarlas y luego descomentarlas se reemplaza por líneas simples de transformación. Naturalmente, puede ejecutar cosas línea por línea en una respuesta (incluso en Spark) y ver los resultados.
Considere el ejemplo, de agregar una nueva transformada (columna de cadena destrozada) a una tabla, luego agruparla y hacer algunas agregaciones. El SQL se pone bastante feo. Los pandas pueden resolver esto, pero le faltan algunas cosas cuando se trata de datos realmente grandes o en particiones particulares (quizás mejorado recientemente).
Los marcos de datos deben verse como una API de alto nivel para las rutinas de SQL, incluso si con los pandas no se representan en absoluto para algún planificador de SQL.
-
Probablemente pueda tener muchas discusiones técnicas sobre esto, pero estoy considerando la perspectiva del usuario a continuación.
Una razón simple por la que puede ver muchas más preguntas sobre la manipulación de datos de Pandas en lugar de SQL es que usar SQL, por definición, significa usar una base de datos, y muchos casos de uso en estos días simplemente requieren bits de datos para ' tareas 'one-and-done' (desde .csv, web api, etc.). En estos casos, cargar, almacenar, manipular y extraer de una base de datos no es viable.
Sin embargo, teniendo en cuenta los casos en los que el caso de uso puede justificar el uso de Pandas o SQL, ciertamente no está equivocado. Si desea realizar muchas tareas repetitivas de manipulación de datos y persistir en los resultados, siempre le recomendaría que primero intente usar SQL. Por lo que he visto, la razón por la cual muchos usuarios, incluso en estos casos, no utilizan SQL, es doble.
En primer lugar, la principal ventaja que tienen los pandas sobre SQL es que es parte del universo más amplio de Python, lo que significa que de una sola vez puedo cargar, limpiar, manipular y visualizar mis datos (incluso puedo ejecutar SQL a través de Pandas ...). El otro es, simplemente, que demasiados usuarios no conocen el alcance de las capacidades de SQL. Cada principiante aprende la 'sintaxis de extracción' de SQL (SELECCIONAR, DESDE, DONDE, etc.) como un medio para llevar sus datos de una base de datos al siguiente lugar. Algunos pueden recoger algunas de las sintaxis de iteración y agrupación más avanzadas. Pero después de eso, tiende a haber un abismo de conocimiento bastante significativo, hasta llegar a los expertos (DBA, ingenieros de datos, etc.).
tl; dr: a menudo depende del caso de uso, la conveniencia o una brecha en el conocimiento sobre el alcance de las capacidades de SQL.