2010-10-25 11 views
5

Estoy usando el mapreduce de Google App Engine para analizar algunos datos. Estoy generando algunos contadores de los que me gustaría crear un simple gráfico de Google en mi done_callback. ¿Cómo accedo a los contadores resultantes de la devolución de llamada?En la versión python del mapreduce de Google App Engine, ¿cómo accedes a los contadores desde done_callback?

#The map method 
def count_created_since(entity): 
    now = datetime.datetime.now() 
    delta = now-entity.created 

    #analyze last 12 weeks 
    for x in range(12): 
    start = 7*x 
    stop = 7*(x+1) 

    if delta.days >= start and delta.days < stop: 
     #The counters 
     yield op.counters.Increment(str(x)+" weeks ago") 


def my_callback(request): 
    # fetch counter results to create a simple Google chart url 

Respuesta

5

Puede acceder a los de venta libre a través de un atributo MapreduceState'scounter_map.

from mapreduce import model 
state = model.MapreduceState.get_by_job_id(your_job_id) 
# counters live in state.counters_map 

Hubo un discussion en la lista de correo de un mes o así lo hace sobre el acceso a los contadores.

+0

Gracias, pero ¿cómo determino el job_id en la devolución de llamada? ¿Se pasa como parámetro a través del POST a la devolución de llamada? – Chris

+0

Se pasa como un parámetro llamado 'job_id'. –

+0

@Chris @Robert, no sé cómo se aprobó al responder esta pregunta, pero hoy se pasa en el encabezado en una variable llamada ** Mapreduce-Id ** –

Cuestiones relacionadas