Skip to content

Instantly share code, notes, and snippets.

@bbejeck
Last active October 18, 2017 01:53
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bbejeck/2d35726d4f0d5108eae7eb4016db6812 to your computer and use it in GitHub Desktop.
Save bbejeck/2d35726d4f0d5108eae7eb4016db6812 to your computer and use it in GitHub Desktop.
Updating the Prediction Model
// process call left out for clarity; it places airline data
// in a list, storing in state store by airport code
@Override
public void punctuate(long timestamp) {
KeyValueIterator<String, List<String>> allFlights = flights.all();
while (allFlights.hasNext()) {
KeyValue<String, List<String>> kv = allFlights.next();
List<String> flightList = kv.value;
String key = kv.key;
if(flightList.size() >= 100) {
try {
byte[] serializedRegression = ModelBuilder.train(flightList);
context().forward(key, serializedRegression);
LOG.info("updating model for {}", key);
flightList.clear();
flights.put(key, flightList);
} catch (Exception e) {
LOG.error("couldn't update online regression for {}",key, e);
}
}
}
allFlights.close();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment