在hadoop上的perl中,如何获取mapper正在处理的文件的文件?

qgelzfjb  于 2021-06-03  发布在  Hadoop
关注(0)|答案(2)|浏览(389)

在hadoop中,我传入一个目录/*和各种文件。文件名对于数据处理非常重要。我需要这个perl版本的解决方案。
我相信java的等价物是job.get(“map.input.file”)。我找了大约45分钟,找不到perl解决方案。
谢谢你,凯文

qfe3c7zg

qfe3c7zg1#

所有作业配置变量都被序列化到流程环境中,并使用 StreamUtils.safeEnvVarName 方法。
基本上,此方法将用下划线替换属性名称中的任何非[0-9a-za-z]字符,因此 map.input.file 应作为名为 map_input_file

jv2fixgn

jv2fixgn2#

为了用chris很好地解释的代码进行总结,您需要以下两行代码来获取输入文件名并将其打印到stderr:

my $filename = $ENV{"map_input_file"};
print STDERR "Input filename is: $filename\n";

相关问题