Var*_*lor 4 python csv pandas dask
我有以下问题。我有一个巨大的 csv 文件,想用多处理加载它。对于具有 500000 行和 130 个具有不同 dtype 的列的示例文件,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
Run Code Online (Sandbox Code Playgroud)
从磁盘读取大文件时,瓶颈是IO。由于 Pandas 使用 C 解析引擎进行了高度优化,因此收益很少。任何使用多处理或多线程的尝试都可能降低性能,因为您将花费相同的时间从磁盘加载数据,并且只会增加一些用于同步不同进程或线程的开销。
| 归档时间: |
|
| 查看次数: |
2030 次 |
| 最近记录: |