我是 Hadoop 和 MapReduce 的新手,一直在尝试根据键将输出写入多个文件。谁能提供有关如何使用它的清晰想法或Java代码片段示例。我的映射器工作得很好,在随机播放之后,键和相应的值按预期获得。谢谢!
我想要做的是将输入文件中的几条记录输出到新文件中。因此,新的输出文件应该只包含那些需要的记录,而忽略其他不相关的记录。即使我不使用 MultipleTextOutputFormat,这也可以正常工作。我在mapper中实现的逻辑如下:
public static class MapClass extends
Mapper {
StringBuilder emitValue = null;
StringBuilder emitKey = null;
Text kword = new Text();
Text vword = new Text();
public void map(LongWritable key, Text value, Context context)
throws IOException, InterruptedException {
String[] parts;
String line = value.toString();
parts = line.split(" ");
kword.set(parts[4].toString());
vword.set(line.toString());
context.write(kword, vword);
}
}
reduce的输入是这样的:
[key1]--> [value1, value2, ...]
[key2]--> [value1, value2, ...]
[key3]--> [value1, value2, ... .] 等等
我的兴趣是 [key2]--> [value1, value2, ...] 忽略其他键和相应的值。请帮我用减速机。