복붙노트

[SCALA] 어떻게 S3 또는 HDFS에 ML 파이프 라인에서 모델을 저장?

SCALA

어떻게 S3 또는 HDFS에 ML 파이프 라인에서 모델을 저장?

나는 ML 파이프 라인에 의해 생산 모델의 수천을 저장하려합니다. 여기이 질문에 표시된 바와 같이 다음과 같이 모델을 저장할 수 있습니다 :

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에 저장할 수 있지만 둘 수없는 경로를 나타내는 메시지와 함께 실패 : 나는 S3를 사용하여 시도 녹이다.

어떻게 아마존 S3에 모델을 저장합니다?

해결법

  1. ==============================

    1.HDFS에 모델을 저장하는 한 가지 방법은 다음과 같다 :

    HDFS에 모델을 저장하는 한 가지 방법은 다음과 같다 :

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

    저장된 모델은 다음과 같이로드 할 수 있습니다 :

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

    자세한 내용은 참조하십시오 (참조)

  2. ==============================

    2.아파치 스파크 1.6 이후 및 스칼라 API에, 당신은 어떤 트릭을 사용하지 않고 모델을 저장할 수 있습니다. 의 ML 라이브러리의 모든 모델이 방법 선방와 함께 제공하기 때문에, 실제로는 그 방법을 가지고는 LogisticRegressionModel이를 확인할 수 있습니다. 모델을로드하는 방법으로 당신은 정적 인 방법을 사용할 수 있습니다.

    아파치 스파크 1.6 이후 및 스칼라 API에, 당신은 어떤 트릭을 사용하지 않고 모델을 저장할 수 있습니다. 의 ML 라이브러리의 모든 모델이 방법 선방와 함께 제공하기 때문에, 실제로는 그 방법을 가지고는 LogisticRegressionModel이를 확인할 수 있습니다. 모델을로드하는 방법으로 당신은 정적 인 방법을 사용할 수 있습니다.

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

    3.로컬 디렉토리에 저장하는 것은이 일에 대해 갈 수있는 방법은 그래서 지금의 FileOutputStream는, 로컬 파일 시스템에 (안 하둡 라이브러리를 통해) 절약 할 수 있습니다. 그 존재는 그렇게 확신 디렉토리가 먼저 존재 확인, 존재하는 디렉토리 요구를했다.

    로컬 디렉토리에 저장하는 것은이 일에 대해 갈 수있는 방법은 그래서 지금의 FileOutputStream는, 로컬 파일 시스템에 (안 하둡 라이브러리를 통해) 절약 할 수 있습니다. 그 존재는 그렇게 확신 디렉토리가 먼저 존재 확인, 존재하는 디렉토리 요구를했다.

    그 존재는 당신이 https://spark.apache.org/docs/latest/mllib-pmml-model-export.html 봐 PMML (수출)하실 수 있습니다 모델에 따라 고 말했다.

  4. from https://stackoverflow.com/questions/32292254/how-to-save-models-from-ml-pipeline-to-s3-or-hdfs by cc-by-sa and MIT license