java - 如何将模型从 ML Pipeline 保存到 S3 或 HDFS?

标签 java scala apache-spark apache-spark-mllib apache-spark-ml

我正在尝试保存 ML Pipeline 生成的数千个模型。如答案中所示 here ,模型可以保存如下:

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()

有关详细信息,请参阅 ( ref)

关于java - 如何将模型从 ML Pipeline 保存到 S3 或 HDFS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32292254/

相关文章:

scala - 无法使用键的动态混合类型将成员添加到 Map

apache-spark - 如何将正在运行的 Id 新列添加到 Spark Dataframe ( pyspark)

java - 如何在 apache spark 中加入两个(或更多)流(JavaDStream)

java - 如何通过 Eclipse 在 Windows 中为 Java 构建 Protobuf

java - 启用 GWT SuperDev 模式,启用源映射,已编译,但没有出现源映射

Haskell 的 groupBy 的 Scala 实现

hadoop - Spark : multiple spark-submit in parallel

java - 如何在 Spring Boot 中禁用或覆盖 RequestCacheAwareFilter

java - 保存 List<Integer> 的状态

java - 在 Scala 中使用从 Java 导入的不可变 "val"