您可以使用MLeap轻松地序列化整个PipelineModel(包含要素工程和模型训练)。
注意:以下代码有点旧,您现在可能可以访问更干净的API。
// Mleap PipelineModel Serialization into a single .zip file
val sparkBundleContext = SparkBundleContext().withDataset(pipelineModel.transform(trainData))
for(bundleFile <- managed(BundleFile(s"jar:file:${mleapSerializedPipelineModel}"))) {
pipelineModel.writeBundle.save(bundleFile)(sparkBundleContext).get
}
// Mleap code: Deserialize model from local filesystem (without any Spark dependency)
val mleapPipeline = (for(bf <- managed(BundleFile(s"jar:file:${modelPath}"))) yield {
bf.loadMleapBundle().get.root
}).tried.get
请注意,棘手的部分是如果您在Spark中定义自己的Estimators / Transformers,因为它们也需要相应的MLeap版本。