我发现有关Mleap(库)的许多好评,该库可以快速评分。它基于模型工作,并转换为MLeap捆绑包。
但是在得分之前的数据准备阶段该怎么办?
是否有某种有效的方法可以将“火花ML数据准备管道”(在培训期间有效,但在spark框架中工作)转换为健壮的,性能有效的,优化的字节码?
答案 0 :(得分:0)
您可以使用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版本。