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

Dask DataFrame删列后保存Parquet报FileNotFoundError问题咨询

Dask 列删除后覆盖保存Parquet触发FileNotFoundError

问题描述

执行dd.to_parquet(data)操作时,若输入的data是通过Dask读取的带指定分区的DataFrame,且保存前执行了删除部分列的操作,会抛出如下报错:

FileNotFoundError: [Errno 2] No such file or directory: part.0.parquet'

该场景在Dask使用过程中并不少见,已有其他开发者遇到过同类问题。

最小复现说明

测试代码可稳定复现两种执行路径的行为差异:

  • 从Pandas DataFrame转换生成Dask DataFrame,经列删除操作后保存的流程可正常运行
  • 从已落盘的Parquet文件读取Dask DataFrame,经列删除操作后覆盖原路径保存的流程,会触发上述文件不存在的异常
import numpy as np
import pandas as pd
import dask.dataframe as dd

# -------------
# way 1 - works
# -------------
print('way 1 - start')
A = np.random.rand(200,300)
cols = np.arange(0, A.shape[1])
cols = [str(col) for col in cols]
df = pd.DataFrame(A, columns=cols)
ddf = dd.from_pandas(df, npartitions=11)

# compute and resave
ddf.drop(cols[0:11], axis=1)
dd.to_parquet(
    ddf, 'error.parquet', engine='auto', compression='default',
    write_index=True, overwrite=True, append=False)
print('way 1 - end')

# ----------------------
# way 2 - does NOT work 
# ----------------------
print('way 2 - start')
ddf = dd.read_parquet('error.parquet')

# compute and resave
ddf.drop(cols[0:11], axis=1)
dd.to_parquet(
    ddf, 'error.parquet', engine='auto', compression='default',
    write_index=True, overwrite=True, append=False)
print('way 2 - end')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.28 22:57:07