Jeg løste mit problem. Årsagen til inkonsistente tællinger var MongoDefaultPartitioner som omslutter MongoSamplePartitioner som bruger tilfældige stikprøver. For at være ærlig er dette en ret mærkelig standard for mig. Jeg ville personligt foretrække at have en langsom, men en konsekvent partitioner i stedet for. Detaljerne for partitioneringsindstillinger kan findes i de officielle konfigurationsmuligheder dokumentation.
kode:
val df = spark.read
.format("com.mongodb.spark.sql.DefaultSource")
.option("uri", "mongodb://127.0.0.1/enron_mail.messages")
.option("partitioner", "spark.mongodb.input.partitionerOptions.MongoPaginateBySizePartitioner ")
.load()