Luego de consultar expertos en esta materia, programadores de varias áreas y profesores hemos dado con la respuesta a la interrogande y la plasmamos en esta publicación.
Solución:
tl; dr Dado que Spark 2.4.x+ brinda soporte integrado para leer y escribir datos de Apache Avro, pero el módulo spark-avro es externo y no está incluido en spark-submit o spark-shell de manera predeterminada, debe asegurarse de usar el mismo Scala. versión (ej. 2.12) para el spark-shell
y --packages
.
El motivo de la excepción es que utiliza spark-shell
eso es de Spark construido contra Scala 2.11.12 mientras --packages
especifica una dependencia con Scala 2.12 (en org.apache.spark:spark-avro_2.12:2.4.0
).
Usar --packages org.apache.spark:spark-avro_2.11:2.4.0
y deberías estar bien.
en caso de que alguien esté interesado en Pyspark 2.7 y Spark 2.4.3
el siguiente paquete funciona
bin/pyspark --packages org.apache.spark:spark-avro_2.11:2.4.3
Si conservas algún duda o capacidad de desarrollar nuestro tutorial puedes escribir una apostilla y con mucho gusto lo observaremos.