0

我有一个场景,我需要为两个不同的语料库运行两个Hadoop计算n-gram统计信息的作业,并确保它们将每个 n-gram(以及它的分数)写入同一个 reducer(以便将来我可以在本地读取数据并比较和对比来自两个语料库的两个分数)。例如,如果作业J1在机器上执行其减速器之一M并在本地写入 n-gram N,我希望作业J2也将 n-gram 写入N同一台机器M

我知道如何计算语料库的 n-gram 统计数据(作为参考,可以参考 Google 的出版物)。我还定义了我的自定义分区器(基于 n-gram 中的前两个单词获取哈希)。现在我如何确保同一程序的两次不同运行(在两个不同的语料库上)最终将相应的输出写入相同的减速器?

4

1 回答 1

0

查看MultipleInputs。通过将两个兄弟映射器指向兄弟数据集,您可以避免在减少之前在组合集上运行 ID 映射。

于 2013-10-08T08:07:49.260 回答