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

Spark BigQuery连接器Scala版本不兼容问题求助

解决DataProc 2.2-debian12中Spark BigQuery连接器Scala版本不兼容问题

问题核心

升级DataProc VM到2.2-debian12后,提交任务时出现java.lang.IllegalStateException: This connector was made for Scala null, it was not meant to run on Scala 2.12错误,本质是指定的spark-bigquery-latest_2.12.jar与DataProc 2.2环境的Spark/Scala版本不匹配。

解决方案

1. 替换"latest"连接器为指定兼容版本

避免使用latest标签的jar包,该标签可能指向适配更高版本Scala/Spark的连接器,与DataProc 2.2环境冲突。指定适配Spark 3.3(DataProc 2.2默认Spark版本)和Scala 2.12的稳定版本,提交任务时修改jar包路径:

--jars gs://spark-lib/bigquery/spark-bigquery_2.12-0.33.0.jar

注:需确保连接器版本与DataProc的Spark版本、Scala 2.12完全匹配,可依据官方兼容规则选择对应版本。

2. 调整pom.xml中spark-bigquery依赖的scope

将pom里的spark-bigquery_2.12依赖设置为provided,避免本地构建包与DataProc提供的连接器产生冲突:

<dependency>
    <groupId>com.google.cloud.spark</groupId>
    <artifactId>spark-bigquery_2.12</artifactId>
    <version>0.19.0</version>
    <scope>provided</scope>
</dependency>

DataProc运行时会提供连接器jar,本地构建无需将其打包进无依赖包。

3. 确认DataProc环境的Scala版本

DataProc 2.2-debian12默认使用Scala 2.12,确保所有依赖(包括连接器)均基于Scala 2.12编译,杜绝跨版本兼容问题。

错误原因说明

DataProc 2.2版本的Spark生态相较于2.0有所升级,spark-bigquery-latest_2.12.jar可能已更新为适配更高版本Spark/Scala的版本,而你代码依赖的旧版本连接器(0.19.0)与新环境的类加载逻辑冲突,导致连接器无法识别当前Scala版本,抛出错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 09:09:57