Scala 我可以在if()中使用IsNull或na来检查缺少的值吗?

Scala 我可以在if()中使用IsNull或na来检查缺少的值吗?,scala,h2o,Scala,H2o,这个不是重复的,我有个新问题。我试着写这个 package org.apache.spark.h2o.utils import water.fvec.{NewChunk, Frame, Chunk} import water._ class Miss extends MRTask { override def map(c: Chunk, nc: NewChunk): Unit = { for (row <- 0 until c.len()) { if(c.atd

这个不是重复的,我有个新问题。我试着写这个

package org.apache.spark.h2o.utils

import water.fvec.{NewChunk, Frame, Chunk}
import water._

class Miss extends MRTask {
  override def map(c: Chunk, nc: NewChunk): Unit = {
    for (row <- 0 until c.len()) {
      if(c.atd(row) == 0){  
       nc.addNum(0)
      }
      else
       nc.addNum(1)
    }
  }
}
诸如此类:

c.atd(row) match {
  case nan: Double if nan.isNaN => nc.addNum(0)
  case 0 => nc.addNum(0)
  case _ => nc.addNum(1)
}

不能为空,它是一个整数。如果在原始csv文件中该行为空,在我将csv转换为H2Oframe后,该行将具有什么类型的整数?您认为我的代码检查H2Oframe中缺少的值是否正确?我的代码结果很奇怪。@kukido我在这里发布我的代码和结果。非常感谢您的帮助。使用if x.isNaN进行c.atd(世界其他地区)检查。谢谢,case_uu是什么意思?我发布我的结果最大行仍然是1case uuu表示默认值,如果该值与之前的任何情况都不匹配,那么它既不是0也不是NaN。为什么不添加一条打印语句?默认值=>println(默认值);nc.addNum(1);你能告诉我我的原始代码有什么问题吗?谢谢
c.atd(row) match {
  case nan: Double if nan.isNaN => nc.addNum(0)
  case 0 => nc.addNum(0)
  case _ => nc.addNum(1)
}