2016-08-12 179 views
1

我仍在使用Spark 1.6,並且培訓了一個StandardScalar,我希望在將來的數據集上保存和重用它。保存Spark StandardScaler以備將來在Scala中使用

使用the supplied examples我可以成功轉換數據,但我找不到保存訓練過的標準化器的方法。

有沒有什麼方法可以保存訓練有素的術士?

+0

這是因爲它不是一個模型。這只是標準化的數據,所以您實際上只需將數據保存即可。 – eliasah

+1

謝謝eliasah。不確定我是否同意,標準化者應該包含一系列能夠實現標準化轉變的手段和標準偏差。所以基本上我正在尋找一種方法來應對這些新的數據集。 ml(而不是mlib)包具有保存功能。 –

回答

2

假設您已經創建了scalerModel

import org.apache.spark.ml.feature.StandardScalerModel 

scalerModel.write.save("path/folder/") 

val scalerModel = StandardScalerModel.load("path/folder/") 
0

StandardScalerModel class has save method。調用配合方法上StandardScaler後,返回的對象是StandardScalerModelAPI Docs

例如類似於提供的示例:

import org.apache.spark.ml.feature.StandardScaler 
import org.apache.spark.ml.PipelineModel 

val dataFrame = spark.read.format("libsvm").load("data/mllib/sample_libsvm_data.txt") 

val scaler = new StandardScaler() 
    .setInputCol("features") 
    .setOutputCol("scaledFeatures") 
    .setWithStd(true) 
    .setWithMean(false) 

// Compute summary statistics by fitting the StandardScaler. 
val scalerModel = scaler.fit(dataFrame) 
scalerModel.write.overwrite().save("/path/to/the/file") 

val sameModel = PipelineModel.load("/path/to/the/file") 
相關問題