我正在处理大量的小文件,并且使用CombineFileInputFormat来避免执行许多映射任务。它工作正常,但问题是我需要具有每个文件的ID,这样,文件的所有ID均为1。我如何保留文件的ID?我是否必须在我的CombineFileInputFormat中添加一些代码?
最佳答案
CombineFileRecordReader
为正在处理的当前文件配置配置属性,因此您应该能够从map.input.file
属性获取当前文件名:
@Override
protected void map(Longwritable key, Text value, Context context) {
String filePath = context.getConfiguration().get("map.input.file");
}
如果您使用的是旧版API(已映射),则属性名称是相同的。
关于java - 如何在hadoop中为Java使用CombineFileInputFormat?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14730754/