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

pandas调用to_parquet写入S3路径时本地生成对应结构空目录问题

问题根因

  • 该问题由fastparquet引擎的分区写入路径适配缺陷导致:当你指定了partition_cols开启分区写入时,若运行环境缺少s3fs、fsspec依赖或依赖版本不匹配,fastparquet的分区目录创建逻辑会将s3://开头的远程URI误识别为本地文件系统的相对路径,直接在本地工作目录下创建s3:开头的目录层级复刻S3路径结构。
  • 你观察到S3仍有文件写入,是因为非分区的核心文件写入逻辑走了S3适配接口,只有分区目录的创建逻辑 fallback 到了本地文件系统,因此出现两边都生成文件的异常现象。

解决方案

方法一:补全依赖(推荐)

安装fastparquet对接S3所需的依赖包,升级到兼容版本即可解决,无需修改原有代码逻辑:

pip install -U s3fs fsspec fastparquet pandas

方法二:更换写入引擎

将engine参数从fastparquet改为pyarrow,pyarrow对S3分区写入的原生适配性更好,也可避免该问题,修改后的代码如下:

import pandas as pd
import numpy as np
df = pd.DataFrame(np.random.randn(10, 5))
df.columns = ['a', 'b', 'c', 'd', 'e']
df['p'] = 2
df.to_parquet('s3://my_bucket/test01/boo.parquet', engine='pyarrow', compression='gzip', partition_cols=['p'])

使用该方案需要提前安装对应依赖:pip install pyarrow s3fs


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 20:57:05