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

Apache Spark 4.0预览版与SpringBoot集成时currentValues空指针问题求助

问题分析与解决方案

错误根源

这个currentValues is null的报错是Apache Spark 4.0.0-preview1预览版的已知兼容性bug,在Java 17 + Spring Boot 3.x环境下触发概率极高——预览版的初始化逻辑存在缺陷,和Spring容器的Bean生命周期初始化顺序冲突,导致Spark内部配置映射未正确加载。

解决方案

1. 降级到Spark稳定版(优先推荐)

预览版不适合开发或生产环境,直接切换到最新稳定版(如Spark 3.5.1),该版本完全兼容Java 17和Spring Boot 3.x。

以Maven依赖为例修改配置:

<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-core_2.12</artifactId>
    <version>3.5.1</version>
</dependency>
<dependency>
    <groupId>org.apache.spark</groupId>
    <artifactId>spark-sql_2.12</artifactId>
    <version>3.5.1</version>
</dependency>

2. 调整Spark初始化逻辑(若必须使用预览版)

避免手动创建JavaSparkContext,直接通过SparkSession构建器完成初始化,减少Spring容器与Spark上下文的冲突:

修改你的SparkConfig类:

@Configuration
public class SparkConfig {

    @Value("${spark.app.name}")
    private String appName;

    @Value("${spark.master}")
    private String masterUri;

    @Bean
    public SparkSession sparkSession() {
        return SparkSession.builder()
                .appName(appName)
                .master(masterUri)
                .getOrCreate();
    }

    // 若需JavaSparkContext,直接从SparkSession中获取,无需单独注册Bean
    @Bean
    public JavaSparkContext javaSparkContext(SparkSession sparkSession) {
        return new JavaSparkContext(sparkSession.sparkContext());
    }
}

3. 添加Java 17兼容JVM参数

Spark在Java 17环境下需要访问部分内部API,在应用启动参数中添加以下配置:

--add-opens java.base/java.lang=ALL-UNNAMED
--add-opens java.base/java.util=ALL-UNNAMED
--add-opens java.base/java.io=ALL-UNNAMED

4. 锁定Spark依赖版本

避免Spring Boot的依赖管理覆盖Spark版本,在Maven中添加dependencyManagement锁定版本:

<dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>4.0.0-preview1</version>
        </dependency>
    </dependencies>
</dependencyManagement>

验证

修改后重启应用:使用稳定版Spark时,该错误会直接消失;坚持用预览版的话,调整初始化逻辑后也能规避currentValues为空的问题。

内容的提问来源于stack exchange,提问作者Raja Chaitanya Rekapalli

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 15:57:34