Прежде всего, вы не можете использовать Scala 2.12.x со Spark 2.4.0 (кстати, есть экспериментальная поддержка, см. Комментарии). Как указано в документации , для использования Spark 2.4.0 вам потребуется использовать совместимую версию Scala семейства 2.11.x.
Во-вторых, из документации , JDK9 + совместим со Scala 2.11.12, но он неполон .
Наконец, AWS EMR 5.20 использует Apache Spark 2.4.0. Вы можете проверить версию JDK из командной строки на вашем главном узле.
>java -version
openjdk version "1.8.0_191"
# "b" means "build"
# Version number is 8u191, which also means JDK 8 Update 191
OpenJDK Runtime Environment (build 1.8.0_191-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Или вы можете напрямую запустить команду spark-shell
, которая выведет как Scala (2.11.12), так и версию JDK (JDK8).
Надеюсь, это поможет!
ПРИМЕЧАНИЕ: В другом doc также говорится, что Java 8 является JVM по умолчанию для экземпляров кластера для AWS EMR 5.0.0 или более поздней версии.