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

Azure DevOps中更新PySpark依赖Maven类库修复Jackson漏洞

解决PySpark依赖Jackson类库漏洞的方案(Azure DevOps环境)

核心思路说明

PySpark作为Python包,其内嵌的Jackson等Java类库依赖是随PySpark版本打包的,直接修改requirements.txt无法单独更新这些Java类库,需通过以下几种方式处理:


1. 优先升级PySpark到官方修复版本

这是最稳妥的方案,PySpark官方在新版本中通常会同步更新内嵌的第三方Java依赖以修复漏洞:

  • 查看PySpark官方发布说明,确认包含Jackson漏洞修复的版本(比如3.5.4或3.6.0,具体以官方信息为准)
  • 修改项目根目录的requirements.txt,将pyspark==3.5.3替换为修复后的版本,例如:
    pyspark==3.5.4
    
  • 在Azure DevOps的CI/CD任务中,重新执行pip install -r requirements.txt完成依赖更新

2. 不升级PySpark,手动指定Jackson修复版本

如果无法升级PySpark主版本,可通过Spark的配置参数覆盖内嵌的Jar包依赖:

  • 在Spark应用启动时,通过spark.jars.packages参数指定JFrog给出的Jackson修复版本(需包含所有关联的Jackson组件),例如:
    spark-submit --conf spark.jars.packages=com.fasterxml.jackson.core:jackson-databind:2.15.3,com.fasterxml.jackson.core:jackson-core:2.15.3,com.fasterxml.jackson.core:jackson-annotations:2.15.3 your_spark_app.py
    
  • 也可以在Python代码中直接配置SparkSession:
    from pyspark.sql import SparkSession
    
    spark = SparkSession.builder \
        .appName("YourApplication") \
        .config("spark.jars.packages", "com.fasterxml.jackson.core:jackson-databind:2.15.3,com.fasterxml.jackson.core:jackson-core:2.15.3,com.fasterxml.jackson.core:jackson-annotations:2.15.3") \
        .getOrCreate()
    
  • 若使用Azure DevOps的私有Maven/JFrog仓库,需额外配置仓库地址:
    spark-submit --conf spark.jars.repositories=https://your-jfrog-repo-url/artifactory/maven --conf spark.jars.packages=... your_spark_app.py
    

3. 自定义打包PySpark(极端场景)

如果上述方法都无法满足需求,可自定义修改PySpark内嵌的Jar包后重新打包:

  • 下载PySpark 3.5.3的源码包
  • 替换源码中spark/jars目录下的Jackson相关Jar包为JFrog提供的修复版本
  • 执行python setup.py bdist_wheel生成自定义wheel包
  • 将该包上传至Azure DevOps Artifacts的私有PyPI源
  • 修改requirements.txt引用这个自定义版本,例如:
    pyspark==3.5.3-jackson-fixed
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 03:35:02