使用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

10-02 01:19
查看更多