【发布时间】:2017-04-06 03:42:58
【问题描述】:
我有一个大小为 8-12 GB 的 cvs 文件,我希望能够搜索文件的第一列并在匹配时检索整行。我想每次都搜索一组超过 100K 的键,并为它们检索相应的记录。
我可以选择几种方法:
1) 对文件中的每个键使用简单的 grep ==> 100K grep 命令
2) 创建一个基于 SQL 的数据库并索引第一列然后: a) 通过一个选择查询搜索每个键。 b)制作一个临时表并将所有键插入其中,然后设置成员资格
3) 做一个hash函数,比如Python字典,然后按键搜索。但是我每次需要做大量查询时都需要把它加载到内存中(我不希望它总是占用内存)
我不确定哪种方法更有效?或者我不知道的任何更好的选择。
【问题讨论】:
-
几乎可以肯定,数据库或 nosql 密钥库是要走的路……也就是说这也几乎可以肯定是 OT :/
-
索引数据库听起来是个好主意。
-
你应该考虑使用 pyspark,它最适合此类操作
标签: python performance memory