我将在Spark书中讨论Advanced Analytics,在第二章中,它包含以下代码段:
import org.apache.spark.util.StatCounter
class NAStatCounter extends Serializable {
val stats: StatCounter = new StatCounter()
var missing: Long = 0
def add(x: Double): NAStatCounter = {
if (java.lang.Double.isNaN(x)) {
missing += 1
} else {
stats.merge(x)
}
this
}
def merge(other: NAStatCounter): NAStatCounter = {
stats.merge(other.stats)
missing += other.missing
this
}
override def toString = {
"stats: " + stats.toString + " NaN: " + missing
}
}
在这里,我对使用this
感到困惑。在add
和merge
这两个函数中,它是指代码所定义的原始NAStatCounter
吗?
书中评论:
“合并方法包含跟踪的统计信息 另一个NAStatCounter实例进入当前实例。两者的 这些方法返回它,以便它们可以很容易地链接 一起“。
当他们说this
使用链接时,他们的意思是什么?