知识库

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

在使用 Neo4j 4.x、Databricks 的 Spark Run-time 以及 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

© . All rights reserved.