Tôi đã giải quyết được vấn đề của mình. Lý do của số lượng không nhất quán là MongoDefaultPartitioner bao bọc MongoSamplePartitioner trong đó sử dụng lấy mẫu ngẫu nhiên. Thành thật mà nói, đây là một mặc định khá kỳ lạ đối với tôi. Cá nhân tôi muốn có một trình phân vùng chậm nhưng nhất quán để thay thế. Bạn có thể tìm thấy chi tiết về các tùy chọn phân vùng trong tùy chọn cấu hình chính thức tài liệu.
mã:
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()