Spark 3.3.0升级后写入SQL托管实例表失败求助
解决方案:Spark 3.3升级后SQL Server托管实例写入失败
问题根源
你遇到的java.lang.NoSuchMethodError: org.apache.spark.sql.execution.datasources.jdbc.JdbcUtils$.createConnectionFactory(...)错误,核心原因是Spark SQL Server连接器版本与Spark 3.3不兼容。当前使用的spark-mssql-connector_2.12-1.2.0.jar是针对Spark 3.2开发的,而Spark 3.3对JDBC模块的API做了变更,导致旧连接器无法找到对应的方法。
解决步骤
升级连接器版本
更换为适配Spark 3.3.x的连接器版本,推荐使用spark-mssql-connector_2.12-1.3.0.jar或更高版本(官方明确1.3.0及以上版本支持Spark 3.3)。替换集群中的Jar包
执行以下操作更新依赖:# 删除旧版本连接器 rm /opt/spark/jars/spark-mssql-connector_2.12-1.2.0.jar # 复制新版本Jar包到Spark依赖目录 cp /path/to/your/new/jar/spark-mssql-connector_2.12-1.3.0.jar /opt/spark/jars/如果是Notebook环境,也可以通过环境配置或依赖管理工具直接指定新版本连接器。
确认版本对应关系
确保连接器与Spark版本匹配:- Spark 3.2.x → 连接器1.2.x
- Spark 3.3.x → 连接器1.3.x
- Spark 3.4.x → 连接器1.4.x
验证
重新执行你的DataFrame写入代码,确认Py4JJavaError和NoSuchMethodError不再出现,数据正常写入SQL托管实例表。
内容的提问来源于stack exchange,提问作者Beeharry Bryan
相关产品推荐
相关产品推荐

