我无法用 mapreduce 术语表达算法。
我有两个大的输入文本文件:我们称第一个文件为“R”,第二个文件为“P”。R 通常比 P 大得多,但两者都很大。
在非 mapreduce 方法中,P 的内容将被加载到内存中(散列),然后我们将开始迭代 R 中的所有行。R 中的行只是字符串,我们想检查是否有任何子字符串在 R 中匹配 P 中的任何字符串。
该问题与在大文件中查找单词非常相似,问题是单词列表非常大,因此您无法在地图例程中对它们进行硬编码。
我遇到的问题是我不知道如何确保 P 文件的所有拆分最终在每个 R 文件拆分的映射作业中结束。所以,假设这些分裂:
R = R1, R2, R3;
P = P1, P2
6 个地图作业必须包含这些拆分:
(R1, P1) (R1, P2);
(R2, P1) (R2, P2);
(R3, P1) (R3, P2);
你会如何用 mapreduce 术语表达这个问题?
谢谢。