知识库

错误“java.lang.NoClassDefFoundError: org/apache/spark/sql/sources/v2/ReadSupport”的解释

在 Neo4j 4.x 中,如果您使用的是 Spark 的 Databricks 运行时和 neo4j-spark-connector,您可能在尝试通过 spark-connector 读取或写入 neo4j 时遇到以下错误之一。

java.lang.NoClassDefFoundError: org/apache/spark/sql/sources/v2/ReadSupport

或者

java.lang.ClassNotFoundException: Failed to find data source: org.neo4j.spark.DataSource

一种可能的解释是您使用的是不兼容的连接器,或者您自己构建了连接器,并且出现了一些错误。

要解决此问题,请执行以下操作。

  1. 从 Databricks UI 中删除所有现有的 neo4j_connector jar 文件。

  2. 添加与 Spark 和 Scala 运行时都匹配的相关 jar 文件。您无需自行编译它。您可以从这里下载该工件:https://github.com/neo4j-contrib/neo4j-spark-connector/releases

仅供参考 - 为了帮助您选择正确的 jar 文件,我们在此处提供了一个兼容性矩阵:https://neo4j.ac.cn/developer/spark/overview/#_compatibility