我想在mapreduce程序中使用两个不同的reduce函数,每个都有自己的签名。不同的签名存在于它期望的不同的键对象中。这能做到吗?如何?
使用MultipleOutputs类和单个reducer。您仍然需要为reducer定义输出键/值类型和输出格式,但是您可以通过调用MultipleOutputs类中的静态方法来配置这两个输出(具有不同的类型)。然后在您的reducer中构造一个MultipleOutputs实例,并使用该实例编写键/值对。javadoc有相当有用的示例。