2017-06-01 43 views
4

我需要在大型数据集中找到重复项,所以我正在测试dedupe python库。使用重复数据删除蟒蛇时资源使用率低

我知道它建议用于小数据集,所以我认为使用好机器可以提高性能。我有一台具有56 GB RAM的机器,对于具有200000行的数据集,我正在运行类似于"csv_example"的测试。它可以工作,但内存使用率非常低,所以处理(CPU)。

这似乎需要很长时间阻塞阶段:

INFO:dedupe.blocking:10000, 110.6458142 seconds 
INFO:dedupe.blocking:20000, 300.6112282 seconds 
INFO:dedupe.blocking:30000, 557.1010122 seconds 
INFO:dedupe.blocking:40000, 915.3087222 seconds 

任何人都可以帮助我提高使用或告诉我,如果有任何库/设置,使程序中使用更多的可利用的资源?

回答

2

什么版本的重复数据删除是你的运行?从1.6.8开始,它应该很容易地处理这个大小的记录集。

但是,一般的指导是,当您遇到内存问题时,切换到使用数据库进行阻塞,例如postgres示例。

(我是重复数据删除的主要作者)。

+0

谢谢!重复数据删除是一个伟大的库。是否可以使用这个库在火花去重300万条记录? :) – mjimcua

+1

我对spark一无所知,但是dedupe应该能够轻松处理300万条记录。 – fgregg