我知道这个问题,我一直在使用2.2.1:Why Mongo Spark connector returns different and incorrect counts for a query?
当我使用此代码时:
val profileDs = MongoSpark.load(sparkSession.sparkContext)
val rddCount = profileDs.count()
val dsCount = profileDs.toDS[LightProfile]().count()
rddCount
返回正常值(1.647.864),但dsCount不返回(901.028)。
LightProfile是一个Scala案例类。当我从类中删除一些字段时,dsCount上的计数会上升,接近实际值,直到某个时候,当我压缩足够的字段时,它会得到正确的计数。
我尝试了所有可用的分区程序,但没有一个可以更改结果。
有什么想法吗?
答案 0 :(得分:0)
我也在这里发布了这个:https://jira.mongodb.org/browse/SPARK-173?filter=-2
答案是某些字段在我的数据中是可选的,但它们不在我的case类中。所以我将一些字段从类型T改为Option [T],这就成了伎俩。