如何从r中的流mapreduce作业获取文件名?

qf9go6mv  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(353)

我流一个r mapreduce作业,我需要得到文件名。我知道hadoop在当前作业开始之前为其设置环境变量,我可以使用sys.getenv()访问r中的env vars。
我发现:在流式hadoop程序中获取输入文件名
和sys.getenv(mapred\u job\u id)工作正常,但这不是我需要的。我只需要文件名,而不是作业id或名称。我还发现:在ec2上运行mapreduce作业时如何获取文件名?
但这也没用。从r流式传输时,获取当前文件名的最简单方法是什么?谢谢您

6mzjoqzu

6mzjoqzu1#

我没有尝试过这个,但是从您提供的第二个链接来看,这似乎在一个名为 map.input.file . 那么,这应该是可行的:

Sys.getenv("map.input.file")

编辑:经过进一步的调查,我了解到你需要用下划线替换点,所以这是一种方法:

Sys.getenv("map_input_file")

但是,在yarn(hadoop 2.x)中,map.input.file属性已被弃用,因此应改用新名称:

Sys.getenv("mapreduce_map_input_file")

相关问题