我在通过软泥执行spark操作时遇到了这个异常。有时工作运行良好,有时我会遇到此异常。真的很奇怪,不知道为什么会发生。
我在oozie-lib和我的应用程序jar中都检查了spark-jar的版本,它是相同的(没有冲突(
ERROR ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError:
org.apache.spark.sql.internal.SQLConf$.setSQLConfGetter(Lscala/Function0;)V
java.lang.NoSuchMethodError:
org.apache.spark.sql.internal.SQLConf$.setSQLConfGetter(Lscala/Function0;)V
at org.apache.spark.sql.SparkSession.<init>(SparkSession.scala:91)
at org.apache.spark.sql.SparkSession$Builder.getOrCreate(SparkSession.scala:950)
任何可能导致这种行为的建议。
这清楚地表明了jar冲突。我也遇到过同样的问题。
但正如你所说,你已经证实没有冲突。因此,我可以看到一种可能性是依赖冲突
如果不是这样的话,我建议尝试一次性生成一个包含所有依赖项的jar。当您使用包含所有依赖项的jar时,JVM将直接从jar中定位依赖项,因此不会因为不同的库版本而出现任何不匹配。在maven中,您可以使用汇编插件生成一个包含所有依赖项的jar。