我正在流式处理 R mapreduce 作业,并且需要获取文件名。我知道 Hadoop 在当前作业启动之前设置环境变量,并且我可以使用 Sys.getenv() 访问 R 中的环境变量。
我发现 :获取流式hadoop程序中的输入文件名
和 Sys.getenv(mapred_job_id) 工作正常,但这不是我需要的。我只需要文件名,不需要作业 ID 或名称。我还发现:在EC2上运行mapreduce作业时如何获取文件名?
但这也没有帮助。从 R 流式传输时获取当前文件名的最简单方法是什么?谢谢
我还没有尝试过这个,但是从您提供的第二个链接来看,这似乎在一个名为的环境变量中可用map.input.file
。然后,这应该有效:
Sys.getenv("map.input.file")
编辑:
经过进一步调查,我了解到您需要用下划线替换点,所以这是这样做的方法:
Sys.getenv("map_input_file")
然而,YARN 中已弃用 map.input.file 属性(Hadoop 2.x),因此应使用新名称:
Sys.getenv("mapreduce_map_input_file")
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)