Ich habe mein Problem gelöst. Der Grund für inkonsistente Zählungen war der MongoDefaultPartitioner die MongoSamplePartitioner umschließt die zufällige Stichproben verwendet. Um ehrlich zu sein, ist das für mich eine ziemlich seltsame Voreinstellung. Ich persönlich würde stattdessen einen langsamen, aber konsistenten Partitionierer bevorzugen. Die Details zu den Partitionierungsoptionen finden Sie in den offiziellen Konfigurationsoptionen Dokumentation.
Code:
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()