У меня проблемы с установкой параметра при запуске mapreduce через start_map, чтобы я мог получить к нему доступ через done_callback.Многочисленные вещи, которые я прочитал, подразумевают, что это возможно, но почему-то я не выровнял звезды Земля-Луна должным образом.В конечном итоге я пытаюсь удалить временный большой двоичный объект, созданный для задания mapreduce.
Вот как я его запускаю:
mrID = control.start_map(
"Find friends",
"findfriendshandler.findFriendHandler",
"mapreduce.input_readers.BlobstoreLineInputReader",
{"blob_keys": blobKey},
shard_count=7,
mapreduce_parameters={'done_callback': '/fnfrdone','blobKey': blobKey})
В done_callback, объект контекстанедоступно:
class FindFriendsDoneHandler(webapp.RequestHandler):
def post(self):
ctx = context.get()
if ctx is not None:
params = ctx.mapreduce_spec.mapper.params
try:
blobKey = params['blobKey']
logging.info(['BLOBKEY ' + blobKey])
except KeyError:
logging.info('blobKey key not found in params')
else:
logging.info('context.get did not work') #THIS IS WHAT GETS OUTPUT
Спасибо!
РЕДАКТИРОВАТЬ: Кажется, что может быть более одной библиотеки MR, поэтому я хотел включить мои различные импорт:
from mapreduce import control
from mapreduce import operation as op
from mapreduce import context
from mapreduce import model