温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - Machine learning with spark, data preparation performance problem, MLeap
apache-spark apache-spark-mllib machine-learning performance scoring

其他 - 带有 Spark 的机器学习,数据准备性能问题,MLeap

发布于 2020-03-27 11:00:45

我发现有关Mleap的许多良好反馈-一个可以快速评分的库。它基于模型工作,并转换为MLeap捆绑包。

但是在得分之前的数据准备阶段会怎样?

是否有某种有效的方法可以将“ Spark ML数据准备管道”(在培训期间有效,但在spark框架中)转换为健壮的,性能有效的,优化的字节码?

查看更多

查看更多

提问者
Vladimir Nabokov
被浏览
134
Marsellus Wallace 2019-08-06 23:43

您可以使用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版本。