是否可以根据密钥将reducer输出发送到多个文件?如,
if(key1)
{
//output to file1 using context.write() or otherwise
}
else
{
//output to file2 using context.write() or otherwise
}
您应该能够在您的减速器与MultipleOutputs
类一起使用条件逻辑来实现您想要做的事情。他们在javadoc链接中提供了如何做到这一点的示例。
另一种可能的方法是实现自定义Partitioner。这样就可以运行两个(多个)reducer并根据键的值进行相应的分区。