Я пытаюсь выяснить, как использовать mapreduce library с DatastoreInputReader в App Engine. У меня была большая помощь в этом отличном учебнике: https://sookocheff.com/post/appengine/mapreduce/programmatic-mapreduce/Как вы отправляете параметры функции сопоставления в mapreduce в Google App Engine?
Но есть одна вещь, которую я не могу найти ни одного примера - как вы отправляете настраиваемые параметры в функцию mapper? Похоже, он получает только объект. Что делать, если я также хочу получить доступ к другим данным, относящимся к заданию? Например, если у меня есть игра и вы хотите, чтобы оценка каждого пользователя была определенной, могу ли я отправить ее где-нибудь? Или мне нужно создать отдельную функцию сопоставления для каждого значения, которое я хочу использовать, например?
def mapper_10(user):
user.score = 10
user.put()
def mapper_50(user):
user.score = 50
user.put()
Это выглядит очень глупо, очевидно. Разве нет способа сделать что-то подобное?
def mapper(user, new_score):
user.score = new_score
user.put()
Или мне нужно создать свой собственный считыватель ввода для этого?
Это, похоже, охвачено в учебнике, к которому вы ссылаетесь, конечно. В трубопроводе есть 'params' dict, который, кажется, именно то, что вы хотите. –