我被分配了一个任务,需要对两个大数据集(两个大事务列表)进行对账。基本上,我从两个数据源中提取相关字段到两个相同格式的文件中,然后比较这些文件,以找到在A中但不在B中的任何记录,反之亦然,并报告它们。我在我的最佳努力下写了一篇博客文章(如果感兴趣,请点击)。
其要点是将两个数据集加载到一个大的哈希表中,其中键为行,值为每次出现在文件A中加1,在文件B中出现时减1。然后在最后,我查找任何值不等于0的键/值对。
我的算法似乎足够快(2个100mb文件的10秒),但它有点耗费内存:比较两组100mb文件需要280mb,我希望将其降至100mb峰值内存使用量,并且如果两个数据集的排序大致相同,则可能会更低。
有什么想法吗?
另外,请告诉我这是否对SO来说过于开放。
我的算法似乎足够快(2个100mb文件的10秒),但它有点耗费内存:比较两组100mb文件需要280mb,我希望将其降至100mb峰值内存使用量,并且如果两个数据集的排序大致相同,则可能会更低。
有什么想法吗?
另外,请告诉我这是否对SO来说过于开放。