Spark 异常 : org / codehaus / janino / InternalCompilerException

Se produjo una excepción al ejecutar SparkSQL:

Exception in thread "main" java.lang.NoClassDefFoundError: org/codehaus/janino/InternalCompilerException
    at org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.scala:197)
    at org.apache.spark.sql.catalyst.expressions.codegen.GenerateSafeProjection$.create(GenerateSafeProjection.scala:36)
    at org.apache.spark.sql.catalyst.expressions.codegen.CodeGenerator.generate(CodeGenerator.scala:1321)
    at org.apache.spark.sql.Dataset.org$apache$spark$sql$Dataset$$collectFromPlan(Dataset.scala:3272)
    at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2484)
    at org.apache.spark.sql.Dataset$$anonfun$head$1.apply(Dataset.scala:2484)
    at org.apache.spark.sql.Dataset$$anonfun$52.apply(Dataset.scala:3254)
    at org.apache.spark.sql.execution.SQLExecution$.withNewExecutionId(SQLExecution.scala:77)
    at org.apache.spark.sql.Dataset.withAction(Dataset.scala:3253)
    at org.apache.spark.sql.Dataset.head(Dataset.scala:2484)
    at org.apache.spark.sql.Dataset.take(Dataset.scala:2698)
    at org.apache.spark.sql.Dataset.showString(Dataset.scala:254)
    at org.apache.spark.sql.Dataset.show(Dataset.scala:723)
    at org.apache.spark.sql.Dataset.show(Dataset.scala:682)
    at org.apache.spark.sql.Dataset.show(Dataset.scala:691)
Caused by: java.lang.ClassNotFoundException: org.codehaus.janino.InternalCompilerException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 17 more

Solución:
1. Falta el paquete, agregue la dependencia en el archivo pom.xml del proyecto:

<dependency>
	<groupId>org.codehaus.janino</groupId>
	<artifactId>janino</artifactId>
	<version>3.0.8</version>
</dependency>

2. Si aún informa un error después de agregar dependencias, debe considerar que el paquete jar tiene conflictos:
como se muestra en la figura siguiente, el paquete spark-core que importé también contiene janino y las diferencias entre las versiones han causado conflictos.
Inserte la descripción de la imagen aquí
Por lo tanto, debe eliminar janino de spark-core y agregar dependencias janino (o agregar directamente la misma versión del paquete de dependencia también debería ser posible, en resumen, no causa conflictos):

Nota: El janino eliminado de spark-core es la versión 3.0.0, por lo que el janino introducido por separado también debería ser la versión 3.0.0; de lo contrario, todavía habrá conflictos de versiones.

<dependency>
   <groupId>org.apache.spark</groupId>
   <artifactId>spark-sql_2.11.8</artifactId>
   <version>2.2.0</version>
   <exclusions>
   		<exclusion>
       		<groupId>org.codehaus.janino</groupId>
       		<artifactId>janino</artifactId>
   		</exclusion>
   		<exclusion>
       		<groupId>org.codehaus.janino</groupId>
       		<artifactId>commons-compiler</artifactId>
   		</exclusion>
   </exclusions>
</dependency>

<dependency>
	<groupId>org.codehaus.janino</groupId>
	<artifactId>janino</artifactId>
	<version>3.0.0</version>
</dependency>

Supongo que te gusta

Origin blog.csdn.net/weixin_44455388/article/details/107464918
Recomendado
Clasificación