A menos que Dataset está cached usando almacenamiento confiable (estándar Spark cache le dará solo garantías débiles) se puede acceder a la base de datos varias veces, cada vez que muestra el estado actual de la base de datos. Desde
ver diferentes recuentos es un comportamiento esperado.
Además, si la fuente JDBC se usa en un modo distribuido (con columna de partición o predicates ), entonces cada hilo ejecutor usará su propia transacción. Como resultado, el estado del Dataset puede no ser completamente consistente.
No use JDBC. Puedes por ejemplo
COPYdatos a un sistema de archivos y cargarlos desde allí.- Utilice la solución de replicación de su elección para crear una réplica dedicada para análisis y configure y pause la replicación mientras usa el análisis de datos.