我正在使用 mrjob 编写地图功能。我的输入将来自 HDFS 目录中的文件。文件的名称包含文件中不存在的小而重要的信息。有没有办法(在 map 函数中)学习给定键值对的输入文件的名称?
我正在寻找与此 Java 代码等效的代码:
FileSplit fileSplit = (FileSplit)reporter.getInputSplit();
String fileName = fileSplit.getPath().getName();
提前致谢!
我正在使用 mrjob 编写地图功能。我的输入将来自 HDFS 目录中的文件。文件的名称包含文件中不存在的小而重要的信息。有没有办法(在 map 函数中)学习给定键值对的输入文件的名称?
我正在寻找与此 Java 代码等效的代码:
FileSplit fileSplit = (FileSplit)reporter.getInputSplit();
String fileName = fileSplit.getPath().getName();
提前致谢!
map.input.file
属性将给出输入文件名。
可以从作业的配置中访问属性,通过为 Mapper 或 Reducer 提供 configure() 方法的实现,在旧 MapReduce API 中获得,其中配置作为参数传入。在新的 API 中,可以从传递给 Mapper 或 Reducer 的所有方法的上下文对象中访问这些属性。
如果您在Python中使用HADOOP 2.x :
file_name = os.environ['mapreduce_map_input_file']