hadoop streaming通过环境变量使文件名可用于每个map任务。
Python:
os.environ["map.input.file"]
java 语:
System.getenv(“map.input.file”).
鲁比呢?
mapper.rb
# !/usr/bin/env ruby
STDIN.each_line do |line|
line.split.each do |word|
word = word[/([a-zA-Z0-9]+)/]
word = word.gsub(/ /,"")
puts [word, 1].join("\t")
end
end
puts ENV['map.input.file']
3条答案
按热度按时间laximzn51#
怎么样:
ruby让您可以轻松地分配给env散列:
cpjpxq1n2#
使用op的输入,我尝试了mapper:
以及使用以下命令的标准字数缩减器:
出错失败:
不知道发生了什么。
py49o6xq3#
所有jobconf变量都通过hadoop流放入环境变量中。变量名通过转换任何不在中的字符而变得“安全”
0-9 A-Z a-z
至_
.所以map.input.file=>Map输入文件
尝试:
puts ENV['map_input_file']