擅长:python、mysql、java
<p>好吧,问题在于如何处理大量数据,而不一定是使用python。问题是,无论您尝试什么,您都不想在内存中加载>;8GB,因为它将使您的应用程序进行交换,并且每次您尝试访问元素时,都会从RAM中进行页输入/页输出。</p>
<p>我要做的方法是在多个文件中对数据集进行排序,这些文件可以很容易地进行pickle,每个文件都使用键上的哈希函数进行排序,这样就可以快速加载拆分的数据集。然后只加载与hash函数条件匹配的数据集(将快速完成),并提取密钥的值。</p>
<p>最后,始终使用<code>cPickle</code>,这是<code>Pickle</code>的一个C实现,对于加载和转储应该更快(尽管我从未亲自做过基准测试)。</p>
<p>注意:这个解决方案不知怎的是poorman的数据库。当然,@freakish的建议和@Jakob使用数据库的解决方案确实是个好主意。尽管我建议的解决方案是在网络节点上分发数据集,在多个服务器上分发存储。</p>