我想获得有关使用 No-SQL 数据存储来满足我的特定要求的建议。
让我解释一下: 我必须处理五个 csv 文件。每个 csv 包含 500 万行,并且每个 csv 中都存在公共(public) id 字段。因此,我需要通过迭代 500 万行来合并所有 csv。因此,我使用 python 字典根据公共(public) id 字段合并所有文件。但这里的瓶颈是你无法使用 python 字典将 500 万个键存储在内存中(< 1gig)。 所以,我决定使用No-Sql。我认为它可能有助于处理500万个键值存储。但我对此没有明确的想法。
无论如何,我们无法减少迭代,因为我们有五个 csv,每个 csv 都必须迭代才能更新值。
有简单的步骤吗? 如果是这种方式,您能给我 No-Sql 数据存储来处理键值对吗?
注意:我们也将值作为列表类型。
最佳答案
如果 CSV 已按 ID 排序,您可以使用 merge-join algorithm 。它允许您迭代单行,因此您不必将所有内容都保留在内存中。
不过,将算法扩展到多个表/CSV 文件将是一个更大的挑战。 (但可能比学习 Hadoop 这样的新东西更快)
关于python - python处理500万个key-value数据,NoSql能解决吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11522232/