Spark中意外的case类相等

时间:2016-04-15 15:47:05

标签: scala apache-spark

我一直认为案件类的平等表现得非常好......直到今天!

在火花壳中,我运行了以下内容:

scala> case class TV(value:Int)
defined class TV

scala> sc.parallelize(Seq((TV(1),"a"),(TV(1),"b"))).map(_._1).countByValue()
res37: scala.collection.Map[TV,Long] = Map(TV(1) -> 1, TV(1) -> 1)

我原本期望两个TV值都被卷起来作为相同的密钥。

如果我从TK中提取值,它的行为与预期一致:

sc.parallelize(Seq((TV(1),"a"),(TV(1),"b"))).map(_._1.value).countByValue()
res38: scala.collection.Map[Int,Long] = Map(1 -> 2)

这里发生了什么?

0 个答案:

没有答案