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

多Parquet文件转单个CSV仅成功转换约10个,求问题排查

多个Parquet转CSV仅部分成功的原因及解决办法

可能的原因

  • 无效参数触发异常中断:ParquetFile(p, sep='\t')中的sep参数是错误的,fastparquet的ParquetFile初始化不接受该参数,执行时会直接抛出异常,导致整个循环终止,后续文件无法继续处理。
  • 缺少异常捕获机制:即便没有无效参数,若某份Parquet文件存在格式损坏、内存不足读取失败、权限受限等问题,程序会直接报错停止,无法处理剩余文件。
  • 特殊文件干扰:部分Parquet文件可能包含嵌套结构、超大字段,to_pandas()转换时出现隐性错误,导致循环中断。

修正后的代码

import pandas as pd
import glob
from fastparquet import ParquetFile

path = '.'
prqtfiles = glob.glob(path + "/*.parquet")

for idx, p in enumerate(prqtfiles):
    try:
        # 移除无效的sep参数
        pr = ParquetFile(p)
        df = pr.to_pandas()
        csv_path = p[:-8] + '.csv'
        df.to_csv(csv_path, index=False)
        print(f"成功转换第{idx+1}个文件:{p} -> {csv_path}")
    except Exception as e:
        print(f"转换文件{p}失败,错误信息:{str(e)}")

额外优化建议

  • 若处理超大Parquet文件,可使用ParquetFile.iter_row_groups()逐块读取,再追加写入CSV,避免内存溢出。
  • 遇到嵌套结构的Parquet文件,需提前将嵌套字段展开(比如用json_normalize处理字典类型列),再导出CSV,避免格式混乱。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:36:14