Мой маппер организован следующим образом:
#!/usr/bin/python
import os
import sys
for line in sys.stdin:
filename = os.environ["map_input_file"]
print(filename)
Я просто пытаюсь получить имя файла в маппере, но в файле map_input_file есть ошибка, определенная следующим образом:
"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
и не может импортироватьимя файла.
Любое решение о том, как получить имя файла в маппере, будет высоко ценится.
Для информации, я запускаю этот код локально, используя cat text.txt |конвейер mapper.py.Запуск его в кластере, моя конечная цель, тоже не сработает, возможно, из-за той же ошибки.