簡體   English   中英

如何將模型從ML Pipeline保存到S3或HDFS?

[英]How to save models from ML Pipeline to S3 or HDFS?

我正在努力保存ML Pipeline生產的數千種型號。 正如在答復中指出這里 ,該機型可以保存如下:

import java.io._

def saveModel(name: String, model: PipelineModel) = {
  val oos = new ObjectOutputStream(new FileOutputStream(s"/some/path/$name"))
  oos.writeObject(model)
  oos.close
}

schools.zip(bySchoolArrayModels).foreach{
  case (name, model) => saveModel(name, Model)
}

我已經嘗試使用s3://some/path/$name/user/hadoop/some/path/$name因為我希望模型最終保存到amazon s3但是它們都失敗並顯示路徑不能是找到。

如何將模型保存到Amazon S3?

將模型保存到HDFS的一種方法如下:

// persist model to HDFS
sc.parallelize(Seq(model), 1).saveAsObjectFile("hdfs:///user/root/linReg.model")

然后可以將已保存的模型加載為:

val linRegModel = sc.objectFile[LinearRegressionModel]("linReg.model").first()

有關詳細信息,請參閱( 參考

Apache-Spark 1.6Scala API開始,您可以在不使用任何技巧的情況下保存模型。 因為ML庫中的所有模型都帶有一個save方法,你可以在LogisticRegressionModel中檢查它,實際上它有這個方法。 順便加載模型,您可以使用靜態方法。

val logRegModel = LogisticRegressionModel.load("myModel.model")

因此FileOutputStream保存到本地文件系統(而不是通過hadoop庫),因此保存到本地目錄是實現此目的的方法。 話雖如此,目錄需要存在,因此請確保該目錄首先存在。

話雖如此,根據您的模型,您可能希望查看https://spark.apache.org/docs/latest/mllib-pmml-model-export.html(pmml export)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM