A menos que
Dataset está cached usando armazenamento confiável (padrão Spark cache fornecerá apenas garantias fracas) o banco de dados pode ser acessado várias vezes, cada vez mostrando o estado atual do banco de dados. Desde ver contagens diferentes é um comportamento esperado.
Além disso, se a fonte JDBC for usada em modo distribuído (com coluna de particionamento ou
predicates ), cada thread executor usará sua própria transação. Como resultado, o estado do Dataset pode não ser totalmente consistente. Não use JDBC. Você pode por exemplo
COPYdados para um sistema de arquivos e carregá-los de lá.- Use a solução de replicação de sua escolha para criar uma réplica dedicada à análise e defina e pause a replicação enquanto analisa os dados.