blob: 6efc798f31a6b11ed891d282c743f8f49bc50e5d [file] [log] [blame]
package io.prediction.examples.java.recommendations.tutorial2;
import io.prediction.examples.java.recommendations.tutorial1.TrainingData;
import io.prediction.examples.java.recommendations.tutorial1.Query;
import io.prediction.examples.java.recommendations.tutorial1.DataSource;
import io.prediction.examples.java.recommendations.tutorial1.DataSourceParams;
import io.prediction.controller.java.EmptyParams;
import io.prediction.controller.java.IJavaEngineFactory;
import io.prediction.controller.java.JavaSimpleEngine;
import io.prediction.controller.java.JavaSimpleEngineBuilder;
import io.prediction.controller.java.JavaEngineParams;
import io.prediction.controller.java.JavaEngineParamsBuilder;
import io.prediction.controller.java.JavaWorkflow;
import io.prediction.controller.java.WorkflowParamsBuilder;
import java.util.HashMap;
public class Runner1 {
// During development, one can build a semi-engine, only add the first few layers. In this
// particular example, we only add until dataSource layer
private static class HalfBakedEngineFactory implements IJavaEngineFactory {
public JavaSimpleEngine<TrainingData, Object, Query, Float, Object> apply() {
return new JavaSimpleEngineBuilder<
TrainingData, Object, Query, Float, Object> ()
.dataSourceClass(DataSource.class)
.build();
}
}
public static void runComponents(String filePath) {
JavaEngineParams engineParams = new JavaEngineParamsBuilder()
.dataSourceParams(new DataSourceParams(filePath))
.build();
JavaWorkflow.runEngine(
(new HalfBakedEngineFactory()).apply(),
engineParams,
null,
new EmptyParams(),
new WorkflowParamsBuilder().batch("MyEngine").verbose(3).build()
);
}
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("Error: Please specify the file path as argument");
System.exit(1);
}
runComponents(args[0]);
System.exit(0); // clean shutdown is needed for spark
}
}