java - 如何在hadoop中为Java使用CombineFileInputFormat?

标签 java hadoop

我正在处理大量的小文件,并且使用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/

相关文章:

java - 为什么这个 Java 8 流示例不能编译?

java - jsf 1.2 验证并关闭后弹出窗口不上传新数据

java - 如何在 JPA 列中使用自定义类型?

sql - hive -加入 map 数据类型列

java - 使用Virtualbox的Hortonworks Hadoop-执行jar

Java 定时器帮助?

java - LibGDX - 居中正交相机

java - 如何在hadoop中配置hdfs

apache - 需要有关在 Apache Mesos 上设置 Apache Hadoop 的帮助

hadoop - Hadoop 上的网络拓扑