Kri*_*thy 7 python streaming hadoop filesplitting input
在Java中编写程序时,我能够使用FileSplit在mapper类中找到输入文件的名称.
当我用Python编写程序时(使用流式传输?),有相应的方法吗?
我在apache上的hadoop流文档中找到了以下内容:
请参阅配置参数.在执行流作业期间,转换"映射"参数的名称.点(.)变为下划线(_).例如,mapred.job.id变为mapred_job_id,mapred.jar变为mapred_jar.在您的代码中,使用带下划线的参数名称.
但我仍然无法理解如何在我的mapper中使用它.
任何帮助都非常感谢.
谢谢
根据"Hadoop:The Definitive Guide"
Hadoop将作业配置参数设置为Streaming程序的环境变量.但是,它会使用下划线替换非字母数字字符,以确保它们是有效名称.以下Python表达式说明了如何从Python Streaming脚本中检索mapred.job.id属性的值:
os.environ [ "mapred_job_id"]
您还可以通过将-cmdenv选项应用于Streaming启动程序(为您要设置的每个变量一次),为MapReduce启动的Streaming进程设置环境变量.例如,以下设置MAGIC_PARAMETER环境变量:
-cmdenv MAGIC_PARAMETER = abracadabra
通过解析mapreduce_map_input_file(新)或(不建议使用)环境变量,您将获得地图输入文件名. map_input_file
注意:
两个环境变量区分大小写,所有字母都是小写的.
| 归档时间: |
|
| 查看次数: |
8442 次 |
| 最近记录: |