Se o objetivo final é realizar cálculos com o Spark, quais são os motivos pelos quais alguém transferiria primeiro os dados do Postgres para um HDFS (com o Sqoop) em vez de apenas usar o Spark SQL com o Postgres diretamente (com o JDBC?)
A resposta a esta pergunta (que faz referência ao MongoDB, não ao PostgreSQL ... mas ainda aplicável) menciona que essas são as duas opções, mas estou me perguntando o que motivaria a escolha de uma em vez da outra.
Essa pode ser uma pergunta muito ampla, mas, como em qualquer sistema, quanto menos etapas e dependências você tiver, mais fácil será suportá-lo, desde que atenda às metas de negócios atuais e futuras (ou futuras o suficiente).
No seu cenário de caso de uso, não parece que você tenha qualquer uso para HDFS e SQOOP. Em muitos ambientes, eles podem. Por exemplo, eles podem querer usar o HDFS como um armazenamento de arquivos e manter os registros acessíveis mesmo depois de processados com o Spark. Pode ser que eles sejam registros de clientes, por exemplo, e sejam agregados, dessa forma você manteria os originais à mão para poder fornecer a cada cliente seus próprios registros, se necessário.
Ao entrar diretamente no Spark e com base no seu trabalho, você modificará os dados e talvez não consiga recuperar o original. Ao manter uma cópia no HDFS, você também pode sempre recriar o resultado final, pois possui uma cópia do que o criou.
Se você não precisar que os dados persistam no formato em que estavam quando os extraiu ou não precise recriar a saída passando pelo mesmo processo, talvez não precise. Outro item pode ser que você deseja um ambiente dev/qa ao vivo. Ao colocá-lo primeiro no HDFS, você pode seguir o mesmo processo para todos os ambientes usando os dados mais recentes. Talvez você não consiga recriar um problema ou cenário se os dados forem processados, mas não mantidos/armazenados.
Essas são algumas das MUITAS razões possíveis. Realmente depende.