4
我想了根据使用Hadoop的地图,减少月写的文件。如果数据是从一月份开始,那么数据应该在jan-file中写入,同样每个月应该有一个单独的文件。
如何建立在Hadoop中mapredude这样的文件。我正在尝试递归map-reduce,但没有得到如何实现它?
PLS建议我一些解决方案。
谢谢。
我想了根据使用Hadoop的地图,减少月写的文件。如果数据是从一月份开始,那么数据应该在jan-file中写入,同样每个月应该有一个单独的文件。
如何建立在Hadoop中mapredude这样的文件。我正在尝试递归map-reduce,但没有得到如何实现它?
PLS建议我一些解决方案。
谢谢。
使用MultipleOutputFormat类,输出文件名可以从钥匙,并从减速机减速机的输出值来推断。必须在用户定义的OutputFormat类中实现MultipleOutputFormat#generateFileNameForKeyValue。
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(新的mapreduce库而不是旧的mapred)。这就是为什么我低估了。 – Tony 2013-12-16 03:09:13