7

我正在使用 mrjob 编写地图功能。我的输入将来自 HDFS 目录中的文件。文件的名称包含文件中不存在的小而重要的信息。有没有办法(在 map 函数中)学习给定键值对的输入文件的名称?

我正在寻找与此 Java 代码等效的代码:

FileSplit fileSplit = (FileSplit)reporter.getInputSplit();
String fileName = fileSplit.getPath().getName();

提前致谢!

4

2 回答 2

6

map.input.file属性将给出输入文件名。

根据Hadoop - 权威指南

可以从作业的配置中访问属性,通过为 Mapper 或 Reducer 提供 configure() 方法的实现,在旧 MapReduce API 中获得,其中配置作为参数传入。在新的 API 中,可以从传递给 Mapper 或 Reducer 的所有方法的上下文对象中访问这些属性。

于 2012-07-11T17:06:13.863 回答
6

如果您在Python中使用HADOOP 2.x :

file_name = os.environ['mapreduce_map_input_file']
于 2014-06-26T14:52:11.197 回答