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

如何更快读取超大CSV文件?使用pyarrow引擎遇ArrowInvalid错误求助

解决pyarrow读取超大CSV时的块边界报错问题

针对你遇到的pyarrow.lib.ArrowInvalid: straddling object straddles two block boundaries (try to increase block size?)错误,以下是两种可行的解决方式:

  • 方法一:在pandas的read_csv中直接传递块大小参数
    pandas的read_csv使用pyarrow引擎时,可以通过storage_options参数向pyarrow的读取器传递配置,其中就包含block_size(单位为字节)。你可以根据文件大小设置更大的块值,比如100MB:

    df = pd.read_csv("file.csv", engine='pyarrow', storage_options={"block_size": 100 * 1024 * 1024})
    
  • 方法二:直接使用pyarrow读取再转成pandas DataFrame
    如果第一种方式不生效,可以直接调用pyarrow的CSV读取接口,更灵活地配置读取参数:

    import pyarrow.csv as pv
    import pyarrow as pa
    
    # 配置读取选项,设置更大的块大小
    read_options = pv.ReadOptions(block_size=100 * 1024 * 1024)
    # 读取为Arrow Table
    arrow_table = pv.read_csv("file.csv", read_options=read_options)
    # 转换为pandas DataFrame
    df = arrow_table.to_pandas()
    

额外提示:如果报错频繁出现,建议检查你的CSV文件格式是否规范,比如包含换行的字段是否用引号正确包裹,这也能减少此类跨块读取的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 06:26:24