这是我的问题。我有一个大数据集可以使用,我需要限制每个键的最大值。有时我每个键有 10000+ 个值,而这正是我需要的。
那么如何配置我的工作以获取每个键的“x”值?(任何键)在减少阶段之后。
编辑:这是减少源代码。我的主要问题是有时我会出现 OutOfMemory,这是因为 StringBuilder 变得很大。
也许有一种方法可以通过配置说“我只想要每个键 10.000 个值”。如果没有,我必须在我的减速器中添加一些额外的代码......
public void reduce(Text domain, Iterable<Text> inLinks, Context context) throws IOException,
InterruptedException {
allInlinks = new StringBuilder();
for (Text text : inLinks) {
allInlinks.append(text.toString());
allInlinks.append(",");
}
allLinksText.set(allInlinks.toString());
context.write(domain, allLinksText);
}