trait SparkBaseAgg[V] { type K def getKeys: K def reduce(other: V): V } case class ABC( customerId: Long, count: Long ) extends SparkBaseAgg[ABC] { ov