0

我想在磁盘 I/O 方面尽可能高效地使用 Mongo Spark 连接器(Scala API)将完整的 MongoDB 集合读入 Spark。

在阅读了连接器文档和代码之后,我了解到分区器都是为了计算索引字段的最小和最大边界而设计的。我的理解是(以及我使用explainshow 进行的测试)每个游标都会扫描索引以查找计算边界内的文档键,然后获取相应的文档。

我担心这种索引扫描方法会导致随机磁盘读取,最终导致更多的 I/Ops 是必要的。在我的情况下,问题更加突出,因为集合大于可用 RAM(我知道不建议这样做)。当文档存储在磁盘上时,使用自然顺序游标读取文档不是要快几个数量级吗?我怎样才能做到这一点?

4

0 回答 0