使用 Antlr 4.10.1 运行 Spark 3.3.2 的问题

问题描述 投票:0回答:0

我用 Hibernate 6 升级了一个遗留应用程序,它使用 Altlr4 runtime 4.10.1。它还使用 spark,它是 3.3.2,使用 Antlr4 运行时版本 4.8。 运行应用程序时出现以下错误: 引起:java.io.InvalidClassException: org.antlr.v4.runtime.atn.ATN;无法使用版本 3(预期为 4)反序列化 ATN。 在 org.antlr.v4.runtime.atn.ATNDeserializer.deserialize(ATNDeserializer.java:56)~[antlr4-runtime-4.10.1.jar:4.10.1] 在 org.antlr.v4.runtime.atn.ATNDeserializer.deserialize(ATNDeserializer.java:48) ~[antlr4-runtime-4.10.1.jar:4.10.1] 在 org.apache.spark.sql.catalyst.parser.SqlBaseLexer.(SqlBaseLexer.java:1603) ~[spark-catalyst_2.13-3.3.2.jar:3.3.2] 在 org.apache.spark.sql.catalyst.parser.AbstractSqlParser.parse(ParseDriver.scala:107) ~[spark-catalyst_2.13-3.3.2.jar:3.3.2]

在调试时我发现 SqlBaseLexer 是用 antlr4 4.8 版本生成的,所以它在运行任何更高版本的 antlr4 时都会抛出错误。 有没有办法用更高版本的 Antlr4 运行 Spark 3.3.2?

apache-spark antlr
© www.soinside.com 2019 - 2024. All rights reserved.