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

使用Polars读取120GB CSV文件时,查询单列致Jupyter内核崩溃如何解决?

解决Polars处理大CSV文件崩溃的问题

针对120GB的CSV文件,你遇到的问题主要是默认的scan_csv配置未做针对性优化,导致不必要的内存占用和解析耗时,以下是具体解决办法:

  • 指定列类型并仅加载目标列
    默认情况下scan_csv会扫描整个文件推断所有列的类型,这对超大文件来说非常耗时且占用内存。直接指定目标列的类型,同时通过include_columns限定只加载需要的列,让Polars在读取阶段就只处理目标数据:

    PATH = "test.csv"
    # 根据实际数据类型替换,比如pl.Int64、pl.Float64等
    df = pl.scan_csv(
        PATH,
        dtypes={"First Column": pl.Utf8},
        include_columns=["First Column"]
    )
    print(df.collect())
    
  • 启用流式处理避免内存溢出
    如果目标列的数据量依然超出内存,在collect时添加streaming=True参数,Polars会分块处理数据,不会一次性将所有数据加载到内存中:

    print(df.collect(streaming=True))
    
  • 检查并优化CSV格式
    若CSV存在格式问题(比如分隔符错误、未转义的特殊字符、不规则换行),会导致Polars解析效率骤降甚至崩溃:

    • 确认sep参数设置正确(默认是逗号,如果是制表符用sep="\t")
    • 若存在少量格式错误,可临时添加ignore_errors=True跳过错误行,之后再修复源文件
  • 避开Jupyter的内存限制
    Jupyter内核本身有内存使用限制,超大文件处理建议直接在终端运行Python脚本,避免Jupyter的额外内存开销。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 02:00:21