大数据排序和搜索

nwe*_*web 1 sorting search bigdata

我有两个数据文件,每个100个char行.文件A:10 8行,文件B:10 6行.我需要找到所有的文件B不在A文件中的字符串
开始我就在想这两个文件喂养到MySQL,但它看起来像它永远不会完成创建于10分的唯一键8的记录.

我在等你的建议.

Mic*_*eyn 5

您可以在没有数据库的情况下执行此操作 关键是减小A的大小,因为A比B大得多.以下是如何做到这一点:

使用适当的哈希函数为B文件中的字符串计算64位哈希值.将它们存储在内存中(在哈希表中),您可以这样做,因为B很小.然后逐行散列A文件中的所有字符串,并查看每个字符串是否与B文件的散列相匹配.任何具有匹配哈希值(从B中的一个)的行应存储在文件C中.

当此过程完成时,文件C将具有可能匹配的字符串A的小子集(到B).现在你有一个小得多的文件C,你需要比较B的行.这样可以将问题简化为一个问题,即您可以将C中的所有行加载到内存中(作为哈希表)并比较B的每一行以查看它是否在C中.