可能的重复项:
Hadoop中的MultipleOutputFormat
我想在hadoop中使用map-reduce根据月份编写文件。如果数据来自一月份,那么数据应该在一月份文件中写,同样,每个月都应该有单独的文件。
如何在 hadoop mapredude 中创建这样的文件。我正在尝试递归地图减少,但不知道如何实现它?
请给我一些解决方案。
谢谢。
使用 MultipleOutputFormat 类,输出文件名可以从键推导出来,化简器输出值可以从化简器推导出来。MultipleOutputFormat#generateFileNameForKeyValue 必须在用户定义的 OutputFormat 类中实现。
static class MyMultipleOutputFormat extends MultipleOutputFormat<Text, Text> {
protected String generateFileNameForKeyValue(Text key, Text value, String name) {
String keyString = key.toString();
String valueString = value.toString();
#return a combination of keyString and valueString
}
}