問題を解決しました。カウントに一貫性がない理由は、 MongoDefaultPartitionerでした。 MongoSamplePartitionerをラップします ランダムサンプリングを使用します。正直なところ、これは私にとってはかなり奇妙なデフォルトです。個人的には、代わりに低速ですが一貫性のあるパーティショナーを使用したいと思います。パーティショナーオプションの詳細は、公式の構成オプション に記載されています。 ドキュメント。
コード:
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()