保存Spark StandardScaler以便以后在Scala中使用

时间:2016-08-12 09:20:57

标签: scala apache-spark

我仍在使用Spark 1.6,并培训了一个StandardScalar,我希望在未来的数据集中保存和重用。

使用the supplied examples我可以成功转换数据,但我找不到保存经过培训的规范化工具的方法。

有没有办法可以保存训练有素的规范器?

2 个答案:

答案 0 :(得分:2)

假设您已创建scalerModel

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

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

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

答案 1 :(得分:0)

StandardScalerModel 类具有 save 方法。在 StandardScaler 上调用 fit 方法后,返回的对象是 StandardScalerModel API Docs

e.g。类似于提供的示例:

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