@Override public void flatMap(Flight flight, Collector<Itinerary> out) throws Exception { if (flight.getDepartureTimestamp() > TrafficAnalysis.lastPossibleTimestamp || flight.getDepartureTimestamp() < TrafficAnalysis.firstPossibleTimestamp) { return; } int numCountries = 2; if (CBUtil.isDomestic(flight)) { numCountries = 1; } Date date = new Date(flight.getDepartureTimestamp()); String dayString = format.format(date); Double distance = CBUtil.dist( flight.getOriginLatitude(), flight.getOriginLongitude(), flight.getDestinationLatitude(), flight.getDestinationLongitude()); Integer travelTime = Math.max( (int) ((flight.getArrivalTimestamp() - flight.getDepartureTimestamp()) / (60L * 1000L)), 1); out.collect( new Itinerary( flight.getOriginAirport(), flight.getDestinationAirport(), dayString, flight.getAirline() + flight.getFlightNumber(), "", "", "", "", distance, distance, travelTime, 0, flight.getLegCount(), 0, flight.getMaxCapacity(), -1.0, -1.0, -1.0, "", numCountries, "", "")); }