我的Map器组织如下:
# !/usr/bin/python
import os
import sys
for line in sys.stdin:
filename = os.environ["map_input_file"]
print(filename)
我只是想在Map器中获取文件名,但Map输入文件上有一个错误,定义如下:
"File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'map_input_file'"
我对可能出现的问题感到困惑,因为我尝试了不同的方法,例如:
try:
filename = os.environ["mapreduce.map.input.file"]
except KeyError:
filename = os.environ["map.input.file"]
或
try:
filename = os.environ["mapreduce_map_input_file"]
except KeyError:
filename = os.environ["map_input_file"]
它总是引起一场争论 KeyError
无法导入文件名。
任何关于如何在Map器中获取文件名的解决方案都将不胜感激。
作为参考,我使用cat text.txt | mapper.py管道在本地运行此代码。在集群上运行它,我的最终目标,也不会起作用,可能是因为同样的错误。
1条答案
按热度按时间ukxgm1gy1#
@ilko确实,尝试在集群上运行它会导致以下错误:
这对我这样没经验的人没什么帮助哈哈