在Hadoop中,我正在传递一个包含各种文件的目录/*。文件的名称对于数据处理很重要。我需要Perl中的这个解决方案。
我相信Java等价物是job.get("map.input.file")。我找了大约 45 分钟,找不到 Perl 解决方案。
谢谢凯文
所有作业配置变量都序列化到流程环境中,并使用 StreamUtils.safeEnvVarName
方法中的某些代码使属性名称变得"安全"。
基本上,此方法会将属性名称中的任何非 [0-9A-Za-z] 字符替换为下划线,因此map.input.file
应该可用作名为 map_input_file
的环境变量
为了用代码总结Chris很好地解释的内容,您需要以下两行来获取输入文件名并将其打印到stderr:
my $filename = $ENV{"map_input_file"};
print STDERR "Input filename is: $filenamen";