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

标签 r hadoop environment-variables filenames hadoop-streaming

我正在流式处理 R mapreduce 作业,我需要获取文件名。我知道 Hadoop 在开始之前为当前作业设置环境变量,我可以使用 Sys.getenv() 在 R 中访问环境变量。

我发现: Get input file name in streaming hadoop program

和 Sys.getenv(mapred_job_id) 工作正常,但这不是我需要的。我只需要文件名而不是作业 ID 或名称。我还发现:How to get filename when running mapreduce job on EC2?

但这也没有用。从 R 流式传输时获取当前文件名的最简单方法是什么?谢谢

最佳答案

我没有试过这个,但是从你提供的第二个链接来看,这似乎在一个名为 map.input.file 的环境变量中可用。然后,这应该有效:

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

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

Sys.getenv("map_input_file")

然而,the map.input.file property has been deprecated in YARN (Hadoop 2.x),因此应改用新名称:

Sys.getenv("mapreduce_map_input_file")

关于r - 如何从 R 中的流式 mapreduce 作业中获取文件名?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20915569/

相关文章:

sqldf中的R调用变量

python - 相当于python中R的 `do.call`

r - 具有多个条件的 for 循环的向量化

hadoop - 具有相同条件错误的配置单元多表连接

java - 在mapreduce程序中未调用reducer

node.js - 在 Node 配置之前使用 dotenv 加载 ENV 变量

windows - 如何创建一个空环境的windows cmd shell

r - 与此 R 聚合等效的 pandas 函数

hadoop - 在 apache 镜像列表中找不到 hadoop 下载位置

kubernetes - kustomize 环境源文件中的多行值