Tengo un archivo jar compilado en scala 2.12 y ahora quiero ejecutarlo en emr 5.29.0. ¿Cómo los ejecuto como la versión predeterminada de emr 5.29.0 es scala 2.11.
Según este hilo en el foro de AWS , todas las versiones de Spark en EMR se crean con Scala 2.11, ya que es la versión estable:
En EMR, Spark está construido con Scala-2.11.x, que actualmente es la versión estable. Según https://spark.apache.org/releases/spark-release-2-4-0.html , Scala-2.12 aún se encuentra bajo soporte experimental. Nuestro equipo de servicio ya está al tanto de esta solicitud de función y agregarán compatibilidad con Scala-2.12.0 en las próximas versiones, una vez que se estabilice.
Por lo tanto, tendrá que esperar hasta que agreguen soporte en futuras versiones de EMR o quizás desee compilar un Spark con Scala 2.12 e instalarlo en EMR. Consulte Creación e implementación de aplicaciones personalizadas con Apache Bigtop y Amazon EMR y Creación de una distribución de Spark para EMR .
Desde la versión 6.0.0 , Scala 2.12 se puede usar con Spark en EMR:
Cambios, mejoras y problemas resueltos
Scala
Scala 2.12 se usa con Apache Spark y Apache Livy.
¡Solo una idea, si esperar no es la opción!
¿Es posible empaquetar los últimos jars de Scala con la aplicación con el alcance maven apropiado definido y señalar esos paquetes con la propiedad spark --properties spark.jars.repositories ?
Tal vez tenga que encontrar una forma de transferir los frascos al nodo del controlador. Si s3 es una opción que se puede utilizar como almacenamiento intermedio.