我正在实现一个自定义估算器,它无法访问参数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
的返回类型有什么问题?
答案 0 :(得分:3)
您没有指定cHis.Where(c=>c.Date > StartDate && c.Date< EndDate && Customer_CustomerID == CustomerId && I_ID == ID)
.Select(c=>new {Type = (c.noT != null), c.Duration})
.GroupBy(c=>c.Type).ToList()
.Select(c=> new {Type = c.Key, TotalDuration = c.Sum(d=>Math.Ceiling((decimal)d.Duration/60)), Count = c.Count()})
类型构造函数的泛型类型,因此使用了Estimator
。
使用:
Nothing
Estimator的完整定义如下:
class ExampleEstimator(override val uid: String)
extends Estimator[ExampleTransModel] with PreprocessingParams {
...
}
请注意扩展Model的通用类型abstract class Estimator[M <: Model[M]] extends PipelineStage
。