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
COPY
datos 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.