我写了一个 Miss Class 来扩展 MRTask 以检查 H2oFrame 中的缺失值。这就是我所做的
package org.apache.spark.h2o.utils
import water.fvec.{NewChunk, Frame, Chunk}
import water._
class Miss extends MRTask[Log] {
override def map(c: Chunk, nc: NewChunk): Unit = {
for (row <- 0 until c.len()) {
if(c.atd(row).isNaN){
nc.addNum(0)
}
else
nc.addNum(1)
}
}
}
如您所见,当一行为 NaN 时,我们可以在新列中得到 0。如果我想使用 0 以外的数字来标记缺失值,我必须更改我的代码才能做到这一点。我可以在 Miss Class 中添加一个新参数 X 吗?当我打电话给这门课时,我可以写一些类似的东西
H2OFrame.add(new Miss(8).doAll(1, pred.vec(0)).outputFrame(Array("Miss"), null))
非常感谢你的帮助!