Что делать, если при выполнении задания Spark появилась ошибка вида «java.lang.AbstractMethodError»?

Spark 2.3 изменил логику внутреннего интерфейса Logging.

Если пользовательский код непосредственно наследует Logging и используется более ранняя версия Spark во время компиляции, то в версии Spark 2.3 отобразится ошибка «java.lang.AbstractMethodError» при запуске приложения.

Перекомпилируйте приложения на Spark 2.3.

Можно использовать sl4j+log4j для реализации функции логов вместо наследования внутреннего интерфейса Logging в Spark.

Описание будет следующее:

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-api</artifactId>
  <version>1.7.16</version>
</dependency>
<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-log4j12</artifactId>
  <version>1.7.16</version>
</dependency>
<dependency>
  <groupId>log4j</groupId>
  <artifactId>log4j</artifactId>
  <version>1.2.17</version>
</dependency>

private val logger = LoggerFactory.getLogger(this.getClass)
logger.info("print log with sl4j+log4j")