hadoop - 在 Hadoop 中的多个文件中写入输出

标签 hadoop mapreduce

<分区>

Possible Duplicate:
MultipleOutputFormat in hadoop

我想在 hadoop 中使用 map-reduce 根据月份编写文件。如果数据来自一月份,那么数据应该写在 jan 文件中,同样每个月都应该有单独的文件。

如何在 hadoop mapredude 中创建这样的文件。我正在尝试递归 map-reduce 但不知道如何实现它?

请给我一些解决方案。

谢谢。

最佳答案

使用 MultipleOutputFormat class,输出文件名可以从reducer的键和reducer输出值推导出来。 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 
    }
}

关于hadoop - 在 Hadoop 中的多个文件中写入输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8641461/

相关文章:

java - 在 Maven 中,如何知道要从导入命令添加什么依赖项

hadoop - HDFS 中的文件数与 block 数

hadoop - Hive NR 映射进度不一致并定期从 0% 重新启动

hadoop - 使用合并器执行MapReduce的时间

erlang - CouchDB:Erlang中的map-reduce

hadoop - 神经节:停止hadoop datanode后神经节中的图形保持不变

hadoop - 在Hadoop中共享全局矩阵

hadoop - Hadoop Map 和 Reduce 框架如何

hadoop - 一个完整的单个文件作为映射器的记录

hadoop - mapreduce中的单个reducer是否需要分区?