为什么自定义 Estimator 最终会覆盖 Nothing 类型?
Why does custom Estimator end up overriding Nothing type?
我正在实施自定义估算器,它在访问参数 ava.util.NoSuchElementException: Failed to find a default value for isInList
时遇到问题。定义如下:
trait PreprocessingParams extends Params {
final val isInList = new Param[Array[String]](this, "isInList", "list of isInList items")
}
为了更好地调试问题,我在这里创建了一个最小示例 https://gist.github.com/geoHeil/8dc7a6b6938a517f068e7fd6a981ed12 ExampleTrans
工作得很好。但是,我更愿意将转换器的功能包含到一个估计器中,该估计器也执行一些数据清理。
但是现在我遇到了奇怪的编译问题overriding method has wrong type - expecting Nothing
我的 ExampleEstimator
的 return 类型有什么问题?
您没有指定 Estimator
类型构造函数的泛型类型,因此使用了 Nothing
。
使用:
class ExampleEstimator(override val uid: String)
extends Estimator[ExampleTransModel] with PreprocessingParams {
...
}
Estimator的完整定义如下:
abstract class Estimator[M <: Model[M]] extends PipelineStage
注意扩展模型的通用类型 M
。
我正在实施自定义估算器,它在访问参数 ava.util.NoSuchElementException: Failed to find a default value for isInList
时遇到问题。定义如下:
trait PreprocessingParams extends Params {
final val isInList = new Param[Array[String]](this, "isInList", "list of isInList items")
}
为了更好地调试问题,我在这里创建了一个最小示例 https://gist.github.com/geoHeil/8dc7a6b6938a517f068e7fd6a981ed12 ExampleTrans
工作得很好。但是,我更愿意将转换器的功能包含到一个估计器中,该估计器也执行一些数据清理。
但是现在我遇到了奇怪的编译问题overriding method has wrong type - expecting Nothing
我的 ExampleEstimator
的 return 类型有什么问题?
您没有指定 Estimator
类型构造函数的泛型类型,因此使用了 Nothing
。
使用:
class ExampleEstimator(override val uid: String)
extends Estimator[ExampleTransModel] with PreprocessingParams {
...
}
Estimator的完整定义如下:
abstract class Estimator[M <: Model[M]] extends PipelineStage
注意扩展模型的通用类型 M
。