You are on page 1of 2

from mrjob.

job import MRJob


from datetime import *

#IMPORTANTE: Para evitar problemas de codificacion, no de deben usar tildes en este


archivo

#Calcule el tiempo promedio de demora en las llegadas de los vuelos, para cada
aeropuerto de destino. Debe ignorar los vuelos que llegaron puntuales o antes de la
hora prevista.
#class FlightsQ2a(MRJob):
# def mapper(self, _, line):

with open('flights.csv', newline='') as archivo_csv:


flights_csv = csv.reader(archivo_csv, delimiter=',')
demoras_por_aeropuerto = {}
for fila in flights_csv :
if flights_csv .line_num == 1:
continue
DEST_STATE_ABR = fila[3]
ARR_DELAY = int(fila[6])
DEP_DELAY = int(fila[5])
demora = ARR_DELAY - DEP_DELAY
if demora <= 0:
continue
if DEST_STATE_ABR in demoras_por_aeropuerto:
demoras_por_aeropuerto[DEST_STATE_ABR]['total_demoras'] += demora

def reducer(self, aeropuerto, values):

#Calcule el promedio de demora para cada dia del mes (1-31).


#class FlightsQ2b(MRJob):
# def mapper(self, _, line):

# def reducer(self, dia, values):

class MRFlightDelay(MRJob):

def mapper(self, _, line):


fields = line.split(',')
day = fields[0].split('/')[1]
delay = int(fields[14])
if delay > 0:
yield day, (delay, 1)

def combiner(self, day, delays):


total_delay = 0
count = 0
for delay, num in delays:
total_delay += delay * num
count += num
yield day, (total_delay, count)

def reducer(self, day, delays):


total_delay = 0
count = 0
for delay, num in delays:
total_delay += delay * num
count += num
yield day, total_delay / count
#Calcule el promedio de demora para cada dia de la semana (lunes-domingo) para los
vuelos de American Airlines.
#class FlightsQ2c(MRJob):
# def mapper(self, _, line):

# def reducer(self, diaSemana, values):

if __name__ == '__main__':
#print("***** Flights Q2a *****")
#FlightsQ2a.run()
#print("***** Flights Q2b *****")
#FlightsQ2b.run()
#print("***** Flights Q2c *****")
#FlightsQ2c.run()

You might also like