【发布时间】:2022-01-24 15:16:32
【问题描述】:
我有一个包含大约 4300 万条记录的 spark 数据框,我正在尝试将其写入 Mongo 集合。 当我将其写入 unsharded 集合时,输出记录与我尝试插入的记录相同。但是当我将相同的数据写入分片集合(散列)时,记录数增加了 3 百万。
有趣的是,即使在我的 spark 作业完成后,记录的数量仍会不断波动。 (没有其他连接)
当我对范围分片集合执行相同操作时,记录数是一致的。 (编辑:即使使用范围分片集群,它也会在一段时间后开始波动)
有人能帮我理解为什么会这样吗?而且,我正在对我的集合进行分片,因为我每天要写大约 3000 亿条记录,我想增加我的写入吞吐量;所以任何其他建议都会非常感激。
我有 3 个分片,每个分片在 3 个实例上复制
我没有在 spark mongo 连接器中使用任何其他选项,只使用ordered=False
编辑: 记录数似乎在几个小时后以正确的记录数稳定下来,如果有人能帮助我理解为什么 mongo 会表现出这种行为,那就太好了
【问题讨论】:
-
看到波动的时候你是怎么数文件的?
-
使用 db.collection.stats() 和 mongo compass 进行检查
标签: mongodb performance pyspark consistency