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

使用pd.read_parquet读取GCS的parquet文件时报OSError: Passed non-file path

根本原因

pandas 原生的 pd.read_parquet 接口默认不支持直接解析 GCS 的 gs:// 协议路径,会把该前缀自动截断后当成普通本地文件路径处理,最终抛出非文件路径的报错。你本地 gsutil 可用仅代表系统层面的 GCS 凭证正常,不代表 Python 环境下有适配 GCS 协议的依赖能力。

常见触发场景

  • 缺少 GCS 协议适配依赖:pandas 解析远程对象存储路径需要依赖 fsspec 虚拟文件系统框架 + gcsfs GCS 驱动,这两个库不属于 pandas 的默认依赖,需要单独安装。
  • 依赖版本不兼容:如果已经安装了上述库但仍报错,大概率是 pandas、fsspec、gcsfs 三者的版本不匹配,旧版本的逻辑无法正确识别 gs:// 前缀。
  • 手动指定了不支持远程路径的解析引擎:部分旧版本的 fastparquet 引擎不支持直接读取远程路径,会直接丢弃协议前缀后读取本地路径。

解决方法

  1. 先升级相关依赖到最新稳定版:
pip install pandas fsspec gcsfs --upgrade
  1. 依赖安装完成后直接调用原读取逻辑即可,pandas 会自动识别 gs:// 前缀,调用 gcsfs 读取文件,且默认会复用本地 gsutil 对应的 GCP 凭证,无需额外配置。
  2. 如果仍有路径识别问题,可显式调用 gcsfs 打开文件流后传入 pandas:
import gcsfs
import pandas as pd

# 初始化GCS文件系统,自动读取本地凭证
fs = gcsfs.GCSFileSystem()
# 手动打开文件流后读取
with fs.open("gs://your-bucket/path/to/file.parquet", "rb") as f:
    df = pd.read_parquet(f)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 01:27:03