A primeira pergunta real é por que as pessoas são mais produtivas com abstrações do DataFrame do que abstrações SQL puras.
TLDR; O SQL não é voltado para o processo (humano) de desenvolvimento e depuração, os DataFrames são.
O principal motivo é que as abstrações do DataFrame permitem construir instruções SQL, evitando o aninhamento detalhado e ilegível. O padrão de escrever rotinas aninhadas, comentando-as para verificá-las e, em seguida, descomentando-as é substituído por linhas únicas de transformação. Naturalmente, você pode executar as coisas linha por linha em um repl (mesmo no Spark) e visualizar os resultados.
Considere o exemplo, de adição de uma nova transformação (coluna desconectada de cadeia de caracteres) a uma tabela, agrupando-a e fazendo algumas agregações. O SQL fica muito feio. O Pandas pode resolver isso, mas faltam algumas coisas quando se trata de realmente big data ou em partições específicas (talvez melhoradas recentemente).
Os DataFrames devem ser vistos como uma API de alto nível para rotinas SQL, mesmo que com os pandas eles não sejam renderizados para algum planejador SQL.
-
Você provavelmente pode ter muitas discussões técnicas sobre isso, mas estou considerando a perspectiva do usuário abaixo.
Uma razão simples pela qual você pode ver muito mais perguntas sobre a manipulação de dados do Pandas, em oposição ao SQL, é que usar SQL, por definição, significa usar um banco de dados e muitos casos de uso hoje em dia exigem apenas bits de dados para ' tarefas únicas (feitas em .csv, API da Web etc.). Nesses casos, carregar, armazenar, manipular e extrair de um banco de dados não é viável.
No entanto, considerando os casos em que o caso de uso pode justificar o uso de Pandas ou SQL, você certamente não está errado. Se você quiser executar muitas tarefas repetitivas de manipulação de dados e persistir as saídas, eu sempre recomendo tentar acessar o SQL primeiro. Pelo que vi, a razão pela qual muitos usuários, mesmo nesses casos, não usam o SQL é dupla.
Em primeiro lugar, a principal vantagem do pandas sobre o SQL é que ele faz parte do universo Python, o que significa que, de uma só vez, posso carregar, limpar, manipular e visualizar meus dados (posso até executar o SQL através do Pandas ...). A outra é, simplesmente, que muitos usuários não sabem a extensão dos recursos do SQL. Todo iniciante aprende a 'sintaxe de extração' do SQL (SELECT, FROM, WHERE etc.) como um meio de obter seus dados de um banco de dados para o próximo local. Alguns podem pegar algumas das mais avançadas sintaxes de agrupamento e iteração. Mas, depois disso, tende a haver um abismo bastante significativo no conhecimento, até que você chegue aos especialistas (DBA, Data Engineers, etc.).
tl; dr: Geralmente, isso depende do caso de uso, da conveniência ou de uma lacuna no conhecimento sobre a extensão dos recursos do SQL.