You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Spark连接Neo4j时出现协议版本不兼容异常求助

解决Neo4j与Spark连接器协议版本不兼容问题

问题根源

你遇到的org.neo4j.driver.exceptions.ClientException是版本匹配冲突导致的:

  • 你使用的neo4j-connector-apache-spark_2.11-4.0.2依赖的Neo4j Java Driver为4.x版本,该驱动默认仅支持Bolt协议v2及以上版本;
  • 而你的Neo4j 3.3.x仅支持Bolt协议v1,两者协议版本不兼容,直接导致连接握手失败。

解决方案

方案1:降级Spark连接器版本(推荐)

选择适配Neo4j 3.3.x的连接器版本,比如neo4j-connector-apache-spark_2.11-2.4.5——这个版本专门对应Spark 2.4系列,依赖的Neo4j Driver是1.x版本,能完美兼容Neo4j 3.3.x的Bolt v1协议。

替换你的连接器jar包后,重新运行作业即可。

方案2:强制驱动使用旧协议(可选)

如果不想降级连接器,可以在Spark读取Neo4j数据的配置中强制指定使用Bolt v1协议:

val df = spark.read
  .format("org.neo4j.spark.DataSource")
  .option("url", "bolt://localhost:7687")
  .option("authentication.basic.username", "neo4j")
  .option("authentication.basic.password", "password")
  .option("neo4j.bolt.protocol.version", "1") // 强制启用v1协议
  .load()

注意:这种方式可能会限制部分新特性的使用,仅作为临时替代方案,优先推荐方案1。

验证

替换依赖或添加配置后,重新执行Spark读取操作,确认是否能正常连接Neo4j并获取数据。

内容的提问来源于stack exchange,提问作者sherin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 13:01:10