我也被这两个概念搞糊涂了。下面是我这两种理解:
Param
是在扩展Annotation
Params
在包org.apache.spark.ml.param
,这是
特质为带参数的组件的封装件scala.annotation.meta
。这还提供了一个 内部参数映射来存储附加到实例的参数值。
虽然Params
是一个接口,与DeveloperApi类,你可以启动一个与
/**
* :: DeveloperApi ::
* A param with self-contained documentation and optionally default value. Primitive-typed param
* should use the specialized versions, which are more friendly to Java users.
*
* @param parent parent object
* @param name param name
* @param doc documentation
* @param isValid optional validation method which indicates if a value is valid.
* See [[ParamValidators]] for factory methods for common validation functions.
* @tparam T param value type
*/
class Param[T](val parent: String, val name: String, val doc: String, val isValid: T => Boolean)
extends Serializable