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

PySpark已存在JAR包仍无法实例化GoogleHadoopFileSystem问题求助

问题根因

你遇到的是Guava版本冲突问题:
报错中的java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkState说明你本地Windows环境加载的Guava版本低于GCS连接器依赖的版本,对应方法不存在,直接导致GoogleHadoopFileSystem类初始化失败。
Linux环境可以正常运行是因为该环境下Spark/Hadoop类路径中的Guava版本符合GCS连接器要求,而本地Windows环境的类路径优先级配置有误,优先加载了自带的旧版本Guava。

解决方案

按以下顺序排查修复:

  • 首先调整Spark提交时的类加载优先级,提交任务时添加以下参数,让用户指定的JAR优先级高于Spark自带JAR:
    spark-submit --conf spark.driver.userClassPathFirst=true \
                 --conf spark.executor.userClassPathFirst=true \
                 --jars 你的GCS连接器jar包路径,对应版本的Guava jar包路径 \
                 主脚本路径.py
    
    你使用的Spark3.1.2自带Guava版本为11.0.2,远低于GCS连接器要求的27.1及以上版本,必须强制让高版本Guava优先加载。
  • 若上述配置不生效,直接替换本地Spark安装目录下的Guava包:找到%SPARK_HOME%\jars\guava-xx.x.jar,删除旧版本Guava,替换为和GCS连接器匹配的高版本Guava(推荐使用30.1.1-jre版本,兼容性最佳)。
  • 额外检查本地Python虚拟环境中PySpark自带的JAR包,路径为你的虚拟环境路径\lib\site-packages\pyspark\jars,同样替换其中的旧Guava包即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 23:45:00