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)
}