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

使用Dask读取大型CSV文件时行数异常翻倍问题求助

解决Dask读取CSV时行数异常暴增的问题

可能的原因及对应修复方案:

  • 多余的dtype字段干扰解析:你在dtype里指定了supplier字段,但usecols只选取了custom_rp_code,这种不匹配可能打乱Dask的解析逻辑。删掉dtype里没用的'supplier': 'float64',只保留目标列的类型声明:
    df = dd.read_csv('product_locations_2022-09-19.csv',
                     usecols=['custom_rp_code'],
                     dtype={'custom_rp_code': 'object'},
                     blocksize="10MB")
    
  • CSV存在未转义的换行符:如果custom_rp_code字段里包含未被引号包裹的换行(比如值里有\n),Dask分块读取时会把同一行拆成多行,导致总行数虚高。可以强制指定换行符,或者开启全字段引用解析(需先导入csv模块):
    import csv
    df = dd.read_csv('product_locations_2022-09-19.csv',
                     usecols=['custom_rp_code'],
                     dtype={'custom_rp_code': 'object'},
                     quoting=csv.QUOTE_ALL)
    
  • blocksize设置过小:10MB的块大小对于100万行的文件来说可能太细碎,频繁分块容易引发解析错误。要么去掉blocksize参数让Dask自动处理,要么调大到64MB/128MB:
    df = dd.read_csv('product_locations_2022-09-19.csv',
                     usecols=['custom_rp_code'],
                     dtype={'custom_rp_code': 'object'})
    

额外验证步骤:

  • 执行df.head(20)查看前20行,确认是否有明显重复的行;
  • 用df.npartitions查看分块数量,结合文件大小判断分块是否合理;
  • 如果内存允许,用pd.read_csv读取整个文件,对比行数和value_counts结果,确认是Dask读取问题还是文件本身的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 10:35:41