Contextless ML implementation of Spark ML.
To serve small ML pipelines there is no need to create SparkContext and use cluster-related features.
In this project we made our implementations for ML Transformers. Some of them call context-independent Spark methods.
Instead of using DataFrames, we implemented simple LocalData class to get rid of SparkContext.
All Transformers are rewritten to accept LocalData.
- Import this project as dependency:
lazy val sparkMlServingDependency = RootProject(uri("git://github.com/Hydrospheredata/spark-ml-serving.git"))
project.in(file("."))
// your project settings
.dependsOn(sparkMlServingDependency)- Use it
import io.hydrosphere.mist.api.ml.{LocalPipelineModel, PipelineLoader}
import LocalPipelineModel._
// ....
val model = PipelineLoader.load("PATH_TO_MODEL") // Load
val columns = List(LocalDataColumn("text", Seq("Hello!")))
val localData = LocalData(columns)
val result = model.transform(localData) // Transformed resultMore examples of different ML models are in tests.