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

PySpark中如何解决‘No FileSystem for scheme: gs’错误?

解决PySpark读取Google Bucket时No FileSystem for scheme: gs错误

我在PySpark 2.4.x环境里碰到过完全一样的问题,核心原因就是你的Spark环境缺少Google Cloud Storage(GCS)的连接器依赖,导致无法识别gs://文件协议。下面给你几个亲测有效的Python端解决方案,不用纠结Scala的配置或者复杂的core-site.xml修改:

方案1:启动脚本时直接指定依赖包(最快捷)

Spark支持通过--packages参数自动下载并加载Maven仓库中的依赖包。针对Spark 2.4.1,你需要用适配Hadoop 2.x的GCS连接器版本,直接在运行脚本时添加参数:

如果用spark-submit运行你的代码:

spark-submit --packages com.google.cloud.bigdataoss:gcs-connector:hadoop2-2.1.3 test_code.py

如果是直接启动PyShell测试:

pyspark --packages com.google.cloud.bigdataoss:gcs-connector:hadoop2-2.1.3

这个命令会自动下载连接器jar包并加载,不需要手动修改任何配置文件。

方案2:在代码中配置SparkConf加载依赖(适合固化配置)

如果你不想每次运行都加命令行参数,可以在代码里直接给SparkConf添加依赖和GCS相关配置。修改你的配置部分如下:

from pyspark import SparkConf
from pyspark.sql import SparkSession

conf = SparkConf().setAll([
    ('spark.executor.memory', '16g'), 
    ('spark.executor.cores','4'), 
    ('spark.cores.max','4'),
    # 添加GCS连接器依赖
    ('spark.jars.packages', 'com.google.cloud.bigdataoss:gcs-connector:hadoop2-2.1.3'),
    # 指定GCS文件系统实现类
    ('spark.hadoop.fs.gs.impl', 'com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem'),
    ('spark.hadoop.fs.AbstractFileSystem.gs.impl', 'com.google.cloud.hadoop.fs.gcs.GoogleHadoopFS'),
    # 如果你的Bucket是私有,需要配置服务账号认证(可选)
    ('spark.hadoop.google.cloud.auth.service.account.enable', 'true'),
    ('spark.hadoop.google.cloud.auth.service.account.json.keyfile', '/path/to/your/service-account-key.json')
]).setMaster('local[*]')

spark = SparkSession.builder.config(conf=conf).getOrCreate()

注意:如果你的Bucket是公开可读的,服务账号配置可以省略;如果是私有Bucket,要确保你的服务账号拥有Storage Object Viewer权限,并且密钥文件路径正确。

方案3:手动下载jar包到Spark目录(永久生效)

如果你想让所有Spark任务都默认支持GCS,可以手动下载对应版本的连接器jar包,放到Spark的jars目录里:

  1. 下载适配Spark 2.4.1的gcs-connector-hadoop2-2.1.3.jar
  2. 把jar包复制到$SPARK_HOME/jars目录下
  3. 重启你的Spark环境,之后运行代码就不用再指定依赖了

为什么之前修改core-site.xml没用?

大概率是你修改的不是Spark实际使用的core-site.xml文件。Spark默认会读取$SPARK_HOME/conf下的配置文件,如果你的环境是用Anaconda安装的Spark,可能配置路径不在常规位置。相比直接改配置文件,上面的Python端方案更可控,也更适合本地开发环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.12 05:02:34