Jag löste mitt problem. Anledningen till inkonsekventa räkningar var MongoDefaultPartitioner som omsluter MongoSamplePartitioner som använder slumpmässigt urval. För att vara ärlig är detta en ganska konstig standard för mig. Jag personligen skulle föredra att ha en långsam men en konsekvent partitionerare istället. Detaljerna för partitioneringsalternativ finns i de officiella konfigurationsalternativen dokumentation.
kod:
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()