@Override public Iterable<Tuple2<CorrelatedEvents, Void>> call(Tuple2<List<StandardEvent>, List<StandardEvent>> t) throws Exception { List<Tuple2<CorrelatedEvents, Void>> results = new ArrayList<Tuple2<CorrelatedEvents, Void>>(); List<StandardEvent> alerts = t._1(); List<StandardEvent> clicks = t._2(); for (StandardEvent alert : alerts) { List<StandardEvent> correlated = new ArrayList<StandardEvent>(); for (StandardEvent click : clicks) { if (Math.abs(alert.getTimestamp() - click.getTimestamp()) <= FIVE_MIN_MILLIS) { correlated.add(click); } } if (!correlated.isEmpty()) { results.add(new Tuple2(CorrelatedEvents.newBuilder() .setEvent(alert) .setCorrelated(correlated) .build(), null)); } } return results; } });
/** Creates a Builder by copying an existing Builder */ private Builder(org.kitesdk.data.event.CorrelatedEvents.Builder other) { super(other); if (isValidValue(fields()[0], other.event)) { this.event = data().deepCopy(fields()[0].schema(), other.event); fieldSetFlags()[0] = true; } if (other.hasEventBuilder()) { this.eventBuilder = org.kitesdk.data.event.StandardEvent.newBuilder(other.getEventBuilder()); } if (isValidValue(fields()[1], other.correlated)) { this.correlated = data().deepCopy(fields()[1].schema(), other.correlated); fieldSetFlags()[1] = true; } }
@Override public CorrelatedEvents build() { try { CorrelatedEvents record = new CorrelatedEvents(); if (eventBuilder != null) { record.event = this.eventBuilder.build(); } else { record.event = fieldSetFlags()[0] ? this.event : (org.kitesdk.data.event.StandardEvent) defaultValue(fields()[0]); } record.correlated = fieldSetFlags()[1] ? this.correlated : (java.util.List<org.kitesdk.data.event.StandardEvent>) defaultValue(fields()[1]); return record; } catch (Exception e) { throw new org.apache.avro.AvroRuntimeException(e); } } }
/** * Gets the Builder instance for the 'event' field and creates one if it doesn't exist yet. * The events the other events are correlated with */ public org.kitesdk.data.event.StandardEvent.Builder getEventBuilder() { if (eventBuilder == null) { if (hasEvent()) { setEventBuilder(org.kitesdk.data.event.StandardEvent.newBuilder(event)); } else { setEventBuilder(org.kitesdk.data.event.StandardEvent.newBuilder()); } } return eventBuilder; }
/** Creates a new CorrelatedEvents RecordBuilder by copying an existing CorrelatedEvents instance */ public static org.kitesdk.data.event.CorrelatedEvents.Builder newBuilder(org.kitesdk.data.event.CorrelatedEvents other) { return new org.kitesdk.data.event.CorrelatedEvents.Builder(other); }
/** Creates a new CorrelatedEvents RecordBuilder */ public static org.kitesdk.data.event.CorrelatedEvents.Builder newBuilder() { return new org.kitesdk.data.event.CorrelatedEvents.Builder(); }
/** * Clears the value of the 'correlated' field. * The list of correlated events */ public org.kitesdk.data.event.CorrelatedEvents.Builder clearCorrelated() { correlated = null; fieldSetFlags()[1] = false; return this; }
/** * Clears the value of the 'event' field. * The events the other events are correlated with */ public org.kitesdk.data.event.CorrelatedEvents.Builder clearEvent() { event = null; eventBuilder = null; fieldSetFlags()[0] = false; return this; }
/** * Sets the Builder instance for the 'event' field * The events the other events are correlated with */ public org.kitesdk.data.event.CorrelatedEvents.Builder setEventBuilder(org.kitesdk.data.event.StandardEvent.Builder value) { clearEvent(); eventBuilder = value; return this; }
/** Creates a new CorrelatedEvents RecordBuilder by copying an existing Builder */ public static org.kitesdk.data.event.CorrelatedEvents.Builder newBuilder(org.kitesdk.data.event.CorrelatedEvents.Builder other) { return new org.kitesdk.data.event.CorrelatedEvents.Builder(other); }
/** * Checks whether the 'event' field has been set. * The events the other events are correlated with */ public boolean hasEvent() { return fieldSetFlags()[0]; }
/** * Sets the value of the 'event' field. * The events the other events are correlated with * @param value the value to set. */ public org.kitesdk.data.event.CorrelatedEvents.Builder setEvent(org.kitesdk.data.event.StandardEvent value) { validate(fields()[0], value); this.eventBuilder = null; this.event = value; fieldSetFlags()[0] = true; return this; }
/** * Checks whether the 'correlated' field has been set. * The list of correlated events */ public boolean hasCorrelated() { return fieldSetFlags()[1]; }
/** Creates a Builder by copying an existing CorrelatedEvents instance */ private Builder(org.kitesdk.data.event.CorrelatedEvents other) { super(org.kitesdk.data.event.CorrelatedEvents.SCHEMA$); if (isValidValue(fields()[0], other.event)) { this.event = data().deepCopy(fields()[0].schema(), other.event); fieldSetFlags()[0] = true; } this.eventBuilder = null; if (isValidValue(fields()[1], other.correlated)) { this.correlated = data().deepCopy(fields()[1].schema(), other.correlated); fieldSetFlags()[1] = true; } }
/** * Sets the value of the 'correlated' field. * The list of correlated events * @param value the value to set. */ public org.kitesdk.data.event.CorrelatedEvents.Builder setCorrelated(java.util.List<org.kitesdk.data.event.StandardEvent> value) { validate(fields()[1], value); this.correlated = value; fieldSetFlags()[1] = true; return this; }