все!Я кодирую искровой проект, смешивающий языки Scala и Java.Некоторые классы были написаны на Java, а я занимаюсь Spark в Scala.Мне нужно использовать пользовательский класс аккумулятора (BagAccum расширяет AccumulatorV2 [Int, Bag]) с Int в качестве ввода и Bag в качестве вывода.Тип Bag - это Java-класс в проекте.Компилятор покажет мне ошибку:
BagAccum должен быть абстрактным, поскольку значение метода в классе AccumulatorV2 типа => structure.Bag не определено main.scala / BagGraph / src line 75 Проблема Scala
В этом случае, как я могу определить класс Bag?Ниже приведен полный код класса Scala BagAccum.
Это мой код, объявляющий класс BagAccum.
class BagAccum extends AccumulatorV2[Int, Bag] {
private var bag:Bag = new Bag
override def isZero: Boolean = bag.empty()
override def copy(): BagAccum = {
val newBag = new BagAccum
newBag.bag = this.bag
newBag
}
override def reset(): Unit = bag = null
override def add(v: Int): Unit ={
bag.insert(v)
}
override def merge(other: AccumulatorV2[Int, Bag]): Unit = bag.merge(other.value)
def size():Int = bag.size()
}