Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/333.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在MRjob中获取输入文件的名称_Python_Hadoop_Hadoop Streaming_Mrjob - Fatal编程技术网

Python 如何在MRjob中获取输入文件的名称

Python 如何在MRjob中获取输入文件的名称,python,hadoop,hadoop-streaming,mrjob,Python,Hadoop,Hadoop Streaming,Mrjob,我正在使用mrjob编写一个映射函数。我的输入将来自HDFS目录中的文件。文件名包含文件中不存在的小而重要的信息。有没有办法(在map函数中)了解输入文件的名称(给定的键值对来自该文件) 我正在寻找这段Java代码的等效代码: FileSplit fileSplit = (FileSplit)reporter.getInputSplit(); String fileName = fileSplit.getPath().getName(); 提前谢谢 map.input.file属性将给出输入文

我正在使用mrjob编写一个映射函数。我的输入将来自HDFS目录中的文件。文件名包含文件中不存在的小而重要的信息。有没有办法(在map函数中)了解输入文件的名称(给定的键值对来自该文件)

我正在寻找这段Java代码的等效代码:

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

提前谢谢

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

根据

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


如果将HADOOP 2.x与Python一起使用,请执行以下操作:

file_name = os.environ['mapreduce_map_input_file']

更多信息可以从Praveen之前对类似问题的回答中找到-谢谢,@PraveenSripati和@ChrisWhite,这正是我需要的!要明确地向未来的访问者声明它:
fileName=os.environ['map\u input\u file']
就是这样。这些是在线列出的还是我必须浏览源代码才能找到它们@masu,我认为这些属性是Hadoop流媒体框架自动设置的: