MongoSpark返回错误的计数

时间:2018-04-05 15:59:23

标签: mongodb apache-spark

我知道这个问题,我一直在使用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上的计数会上升,接近实际值,直到某个时候,当我压缩足够的字段时,它会得到正确的计数。

我尝试了所有可用的分区程序,但没有一个可以更改结果。

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

我也在这里发布了这个:https://jira.mongodb.org/browse/SPARK-173?filter=-2

答案是某些字段在我的数据中是可选的,但它们不在我的case类中。所以我将一些字段从类型T改为Option [T],这就成了伎俩。