2012-02-05 20 views

回答

0

是的,我用的產量像這樣放置操作:

def makethumbnails(entity): 
    if entity.small: 
     try: 
      entity.thumb = images.resize(entity.small, 80, 100) 
     except Exception, e: 
      pass 
    yield op.db.Put(entity) 

在我mapreduce.yaml相應的元素是

- name: makethumbnails 
    mapper: 
    input_reader: mapreduce.input_readers.DatastoreInputReader 
    handler: main.makethumbnails 
    params: 
    - name: entity_kind 
     default: main.Image 

這是爲我工作的結合,或者如果你只想更新大量實體的變量:

def seturl(entity): 
    if entity.url: 
     if entity.url.find('mydomainname') > 1: 
      try: 
       entity.url = 'www.mydomainname.com' 
       yield op.db.Put(entity) 
      except Exception, e: 
       logging.debug('There occurred exception:%s' % str(e)) 

我可以通過使用上述操作可以在一個工作中使用15000個實體。

+0

謝謝,這是一個映射,但?我正在減速機中進行。我發現你不能指定輸出,也不能在reducer中寫任何東西,只是放在那裏。這有效,但它不會批量提交。 – user1191219 2012-02-06 17:44:14

相關問題