Как указать имя файла для BlobstoreOutputWriter для простого задания mapreduce?

#python #google-app-engine #mapreduce

#python #google-app-engine #mapreduce

Вопрос:

Как или где мне указать имя файла output_writer и тип содержимого для задания GAE mapreduce? Эта конфигурация ниже работает нормально для меня, но она создает новую запись blobstore с новым именем файла каждый раз, когда я запускаю задание. Я хотел бы иметь возможность указывать имя файла и тип содержимого, которые будут перезаписываться / заменяться каждый раз, когда я запускаю задание mapreduce.

Мой обработчик записывает строки текста для файла csv.

 mapreduce:
- name: Export a model
  mapper:
    input_reader: mapreduce.input_readers.DatastoreInputReader
    output_writer: mapreduce.output_writers.BlobstoreOutputWriter
    handler: export_model
    params:
    - name: entity_kind
      default: models.MyModel 
  

Ответ №1:

Материал output_writer все еще экспериментальный. Пока не предусмотрено указание имен выходных файлов. Вы можете последовать примеру в демонстрационном приложении и использовать косвенное обращение: прикрепите BlobKey выходного блога к объекту по вашему выбору, который содержит желаемое имя).

Ищите

 yield StoreOutput("WordCount", filekey, output)
  

в main.py

Комментарии:

1. Кроме того, обратите внимание, что установка имени файла не приведет к перезаписи старых заданий новыми: большие двоичные объекты blobstore неизменяемы и устраняются с помощью ключа blob, а не filename .