Я не знаю, что произошло в моем коде ...
Журналы здесь.
[error] blahblah\SampleApp.scala:22:53: overloaded method value reduce with alternatives:
[error] (func: org.apache.spark.api.java.function.ReduceFunction[java.lang.Long])java.lang.Long <and>
[error] (func: (java.lang.Long, java.lang.Long) => java.lang.Long)java.lang.Long
[error] cannot be applied to ((java.lang.Long, java.lang.Long) => scala.Long)
[error] val sumHundred = sparkSession.range(start, end).reduce(_ + _)
Когда я запускал этот код в scala 2.11.12, spark2.3.2 работает без ошибок.
И тот же код в scala 2.12.7, spark 2.4.0 не работает - что?
Кто-нибудь знаетоб этом?
private val (start, end) = (1, 101)
def main(args: Array[String]): Unit = {
val sumHundred = sparkSession.range(start, end).reduce(_ + _)
logger.debug(f"Sum 1 to 100 = $sumHundred")
close()
}
Есть родительский элемент trait
, который создает sparkSession
и т. д.
Что я пробовал:
- Явное объявление типа:
private val (start: Long, end: Long) = ...
- Подобные вещи в
reduce
коде.
Что я знаю: Идеально совместимо между scala.Long
и java.lang.Long