python - Dask 读取 csv 与 pandas 读取 csv

标签 python pandas csv dask

我有以下问题。我有一个巨大的 csv 文件,想用多处理加载它。对于一个包含 500000 行和 130 列不同数据类型的示例文件,Pandas 需要 19 秒。我试过 dask 因为我想多处理阅读。但这需要更长的时间,我想知道为什么。我有 32 个内核。并试过这个:

import dask.dataframe as dd
import dask.multiprocessing
dask.config.set(scheduler='processes')
df = dd.read_csv(filepath,  
             sep='\t',
            blocksize=1000000,
             )
df = df.compute(scheduler='processes')     # convert to pandas

最佳答案

当从磁盘读取一个巨大的文件时,瓶颈是IO。由于 Pandas 使用 C 解析引擎进行了高度优化,因此几乎没有什么好处。任何使用多处理或多线程的尝试都可能会降低性能,因为您将花费相同的时间从磁盘加载数据,并且只会增加一些用于同步不同进程或线程的开销。

关于python - Dask 读取 csv 与 pandas 读取 csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54823577/

相关文章:

python - 单元格中的多个值 - 如何重组它们

python - pandas - 使用元素的计数和频率创建数据框

python - 在包含最长列表的 Pandas DF 中查找列的名称

php - CSV 文件使用 php 不断更改生成的 CSV 文件上的数字?

C++: "Low Level"将 .csv 数据读入结构,并将其放入结构数组

python - 为什么我无法加载使用 pip 安装的 mkl 模块?

python - NumPy - 获取行总和大于 10 的行索引

c# - C# 中的 JSON 到 CSV 和 CSV 到 JSON

python - 在 DOS 中打印 python 的进度计数器

python - 如果 Pandas Series 使用 numpy,我如何在 Pandas Series 中拥有不同的类型?