用火花,数据准备性能问题的机器学习,姆利普



我发现了关于莫莱普的许多良好响应 - 一个库,允许快速得分。它在模型的基础上工作,转换为MLEAP捆绑包。

但是在得分之前,数据准备阶段是什么?

是否有一些有效的方法可以转换" Spark ML数据准备管道"(在培训期间正在工作,但在Spark Framework中起作用(为强大的,性能有效,优化的字节代码?

您可以轻松地将整个PipelIneModel(包含功能工程和模型培训都包含(与MLEAP进行序列化。

注意:以下代码有点旧,您现在可能可以访问更清洁的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中定义了自己的估计器/变压器,因为它们也需要相应的MLEAP版本。