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

Spark DataFrame写入Cloud Storage报错:No FileSystem for scheme 'gs'

问题解决:Spark写入GCS报No FileSystem for scheme "gs"错误

错误原因:你的Spark环境缺少Google Cloud Storage (GCS)的Hadoop文件系统连接器,导致无法识别gs://协议。

以下是Colab环境下的具体修复步骤:

1. 完成Google账号认证(Colab专属)

在代码开头添加账号认证,确保Colab会话有权限访问目标GCS Bucket:

from google.colab import auth
auth.authenticate_user()

2. 创建SparkSession时加载GCS连接器依赖并配置参数

修改SparkSession初始化代码,添加GCS连接器的Maven依赖,同时配置Hadoop相关参数:

from pyspark.sql import SparkSession
import pandas as pd

spark = SparkSession.builder \
    .appName("GCS Write Example") \
    .config("spark.jars.packages", "com.google.cloud.bigdataoss:gcs-connector-hadoop3:2.2.5") \
    .config("spark.hadoop.fs.gs.impl", "com.google.cloud.hadoop.fs.gcs.GoogleHadoopFileSystem") \
    .config("spark.hadoop.fs.gs.auth.service.account.enable", "false") \
    .getOrCreate()
  • spark.jars.packages:指定适配Hadoop3版本的GCS连接器Maven包(Colab默认Hadoop3环境)
  • fs.gs.impl:指定GCS文件系统的实现类
  • fs.gs.auth.service.account.enable:禁用服务账号认证,适配Colab的用户账号认证逻辑

3. 执行写入操作(可追加覆盖参数)

df = spark.createDataFrame(pd.DataFrame({
    'a': [1, 2],
    'b': [2, 4]
}))

df.write.csv('gs://my_bucket/df', mode="overwrite")
  • 添加mode="overwrite"可避免目标路径已存在时的报错

额外注意事项

  • 确保你的Google账号对my_bucket拥有写入权限
  • 若连接器版本不匹配,可选择对应Hadoop版本的最新连接器包

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:05:26