2010-08-12 9 views
4

Comment puis-je obtenir les valeurs du compteur après avoir traité tous les enregistrements avec Google AppEngine MapReduce? Ou est-ce que je manque le cas d'utilisation des compteurs ici?Comment puis-je obtenir les valeurs du compteur après avoir traité tous les enregistrements avec Google AppEngine MapReduce?

exemple de code d'http://code.google.com/p/appengine-mapreduce/wiki/UserGuidePython

Comment puis-je récupérer la valeur du compteur counter1 lorsque le MapReduce est fait?

app.yaml

handlers: 
- url: /mapreduce(/.*)? 
    script: mapreduce/main.py 
    login: admin 

MapReduce/main.py

from mapreduce import operation as op 
def process(entity): 
    yield op.counters.Increment("counter1") 

mapreduce.yaml

mapreduce: 
- name: <Some descriptive name for UI> 
    mapper: 
    input_reader: mapreduce.input_readers.DatastoreInputReader 
    handler: main.process 
    params: 
    - name: entity_kind 
     default: <your entity name, e.g. main.MyEntity> 
+0

S'il vous plaît ajouter un peu plus de détails – Manjoor

+0

pour ajouter au commentaire de manjoor, il serait utile si vous avez posté un exemple de code, ou à tout le moins mentionné si vous utilisez java ou python :) –

+0

Ok. J'ai ajouté l'exemple de code du Wiki Google Code. –

Répondre

0

OK. Puisque vous publiez le code des documents, je suppose que vous n'avez pas encore essayé d'exécuter un mappeur. Les résultats du compteur devraient apparaître sur la page d'administration de la session mapreduce. Il doit y avoir un moyen d'accéder aux valeurs depuis le mappeur, mais je ne suis pas assez familier avec la version Python de l'API pour vous dire comment. Je sais que c'est faisable du côté Java.

+0

C'est intéressant. Est la somme d'un compteur, la somme des compteurs dans tous les mappeurs? Cela voudrait dire que les compteurs sont réduits !? –