Scala 如何在spark中从ParamMap中提取值

Scala 如何在spark中从ParamMap中提取值,scala,apache-spark,apache-spark-mllib,apache-spark-ml,Scala,Apache Spark,Apache Spark Mllib,Apache Spark Ml,我正在使用管道和交叉验证程序使用Scala在Spark中进行一些参数调优。我得到一个ParamMap,其中包含一组最佳参数,但是我不知道如何从这个ParamMap中提取值。假设我的ParamMap叫做params,这就是我尝试的: params(new Param(????, "maxDepth", "description") 但是,Param的第一个参数必须是类型可识别的,我不知道传递什么。有什么帮助吗?您可以先检查ParamMap中的所有值: params.toSeq.foreach(p

我正在使用管道和交叉验证程序使用Scala在Spark中进行一些参数调优。我得到一个
ParamMap
,其中包含一组最佳参数,但是我不知道如何从这个ParamMap中提取值。假设我的ParamMap叫做params,这就是我尝试的:

params(new Param(????, "maxDepth", "description")

但是,
Param
的第一个参数必须是类型
可识别的
,我不知道传递什么。有什么帮助吗?

您可以先检查ParamMap中的所有值:

params.toSeq.foreach(pair => {
  println(s"${pair.param.parent} ${pair.param.name} ${pair.param.doc}")
  println(pair.value)
})
然后,要仅检索一个值:

params(new Param(parent, name, doc))
实际上,父级可以是字符串(不能强制识别)