我正在使用 Dask 读取 CSV 文件(10 GB)。然后在执行一些操作后,我使用 .csv 格式以 CSV 格式导出文件to_csv。但问题是导出此文件需要大约27 分钟(根据 ProgressBar 诊断)。
CSV 文件包括 350 列,其中一列是时间戳,另一列的数据类型设置为float64.
我试过在单独的文件中导出,to_csv('filename-*.csv')也试过不包括.csv. 因此,Dask 导出扩展名为.part. 但是这样做也需要与上面提到的相同的时间。
我认为这应该不是 I/O 操作的问题,因为我使用的是 SSD。但我不确定。
这是我的代码(简化):
df = dd.read_csv('path\\to\\csv')
# Doing some operations using df.loc
df.to_csv('export.csv', single_file=True)
Run Code Online (Sandbox Code Playgroud)
我正在使用 Dask v2.6.0。
预期输出 --> 在不改变机器规格的情况下在更短的时间内完成此过程。
无论如何,我可以在更短的时间内导出此文件吗?
默认情况下,dask dataframe 使用多线程调度程序。这对于大多数 pandas 操作来说是最佳的,但read_csv部分保留了 GIL,因此您可能想尝试使用多处理或 dask.distributed 调度程序。
请在此处查看更多信息:https ://docs.dask.org/en/latest/scheduling.html
如果可以的话,我还建议使用更高效的文件格式,例如 Parquet
https://docs.dask.org/en/latest/dataframe-best-practices.html#store-data-in-apache-parquet-format
| 归档时间: |
|
| 查看次数: |
1277 次 |
| 最近记录: |