可以将 mlflow.spark 保存的模型加载为 Spark/Scala 管道吗?
Posted
技术标签:
【中文标题】可以将 mlflow.spark 保存的模型加载为 Spark/Scala 管道吗?【英文标题】:can mlflow.spark's saved model loaded as Spark/Scala Pipeline? 【发布时间】:2020-06-19 09:04:39 【问题描述】:我们的算法工程师正在使用 pyspark 和 mlflow 开发机器学习模型。他正在尝试使用mlflow.spark
API 保存模型,模型格式是原生的spark MLlib
格式。可以从Spark Scala
代码加载模型吗?似乎 mlflow 在跨语言使用方面受到很大限制。
【问题讨论】:
【参考方案1】:MLflow Java/Scala 客户端不具备与 MLflow Python 相同的功能,因为它缺少项目和模型的概念。但是,您可以使用 downloadArtifact 方法使用 Scala 读取 PySpark 生成的 Spark ML 模型。
https://mlflow.org/docs/latest/java_api/org/mlflow/tracking/MlflowClient.html#downloadArtifacts-java.lang.String-java.lang.String-
%python
mlflow.spark.log_model(model, "spark-model")
%scala
val modelPath = client.downloadArtifacts(runId, "spark-model/sparkml").getAbsolutePath
import org.apache.spark.ml.PipelineModel
val model = PipelineModel.load(modelPath)
val predictions = model.transform(data)
【讨论】:
以上是关于可以将 mlflow.spark 保存的模型加载为 Spark/Scala 管道吗?的主要内容,如果未能解决你的问题,请参考以下文章