使用Java编写程序时,如果使用FileSplit在mapper类中输入文件,我就能找到名称。
当我用Python编写程序(使用流技术)时,有相应的方法吗?
我在apache的hadoop流文档中找到以下内容:
但是我仍然不明白如何在我的映射器中利用它。
非常感谢您的帮助。
谢谢
最佳答案
根据"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