火花管道 - 如何从训练有素的特征变压器中提取属性



我需要从训练有素的变压器中提取属性,因此我可以在以后使用它们,例如来自QuantileDiscretizer的bin边界,从StringIndexer中使用的名称到索引映射。例如,如何从下面的代码中从" iNdeTizer_Trained"中提取bin边界。我无法通过谷歌搜索以及官方文档找到介绍https://spark.apache.org/docs/latest/api/scala/scala/index.html#org.apache.sparke.spark.spark.ml.feature.quantilediscretizerizerizerefierfem-P>

//https://spark.apache.org/docs/latest/ml-features.html#quantilediscretizer
import org.apache.spark.ml.feature.QuantileDiscretizer
val data = Array((0, 18.0), (1, 19.0), (2, 8.0), (3, 5.0), (4, 2.2))
val df = spark.createDataFrame(data).toDF("id", "hour")
val discretizer = new QuantileDiscretizer()
  .setInputCol("hour")
  .setOutputCol("result")
  .setNumBuckets(3)
val discretizer_trained = discretizer.fit(df)

在Scala Spark运行中:

  discretizer_trained.getSplits

在您的示例中将产生:

  res1: Array[Double] = Array(-Infinity, 5.0, 18.0, Infinity)

最新更新