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

Spark使用Aerospike连接器写入数据时DataSourceRegister实例化错误

问题根因

你遇到的报错核心是Spark版本、Scala版本与Aerospike Spark连接器版本不兼容:
Aerospike 2.8.0版本连接器默认适配Spark 3.x版本,而你使用的是Spark 2.4.x系列。Spark 2.x和3.x的Logging类实现存在差异:Spark 2.x中Logging是trait,编译后会生成org.apache.spark.internal.Logging$class字节码;Spark 3.x中Logging改为interface,不存在该$class字节码,因此连接器初始化时找不到对应类抛出异常。

解决方案

  • 第一步:替换适配Spark 2.4.x的Aerospike连接器版本,选择2.5.0版本的连接器即可,需匹配你使用的Scala 2.12版本,依赖坐标为aerospike-spark-connector_2.12:2.5.0
  • 第二步:统一Scala版本,你当前本地Spark对应Scala 2.12.8,客户端库使用2.12.11,虽然2.12大版本内小版本兼容,但建议统一为与运行环境一致的Scala版本,避免出现隐式转换或类加载冲突
  • 第三步:排查依赖冲突,在IntelliJ中打开依赖树,确认没有混入Spark 3.x的相关依赖包,如果存在冲突可以通过exclusion规则排除不需要的传递依赖
  • 第四步(非必须优化):代码中写入的format参数可简化为aerospike,2.5.x版本连接器已注册该短名,无需写全类名com.aerospike.spark.sql

修改完依赖后重新编译运行即可正常写入数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 12:06:04