研究适合内存加载时间的数据集

时间:2018-07-03 14:38:26

标签: python dataframe dask

我了解dask的主要用途是用于内存中不适合的数据,但我仍然很好奇。
为什么创建Pandas数据框与Dask数据框的时间不同? (我读到有关开销的信息,但这是否应该这么大?)

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

您不应期望数据帧的加载会更快。在某个时候,系统需要 -从磁盘流字节(固定成本) -解析文本(这部分是可并行的) -在工作人员之间传递数据(这可能涉及昂贵的序列化和通信) -串联(这会占用大量内存,因此如果您周围有很多工作人员,可能会很昂贵)

花费的时间在很大程度上取决于您使用的调度程序,因为这会影响需要多少个数据副本以及发生多少通信。您可能希望尝试将线程和进程混合使用的分布式调度程序。编组任务总会有一些开销。

快速模型是将计算转移到数据,而不是相反。如果您对简单的数据框(过滤器,分组,计算,聚合)进行操作,并且仅对相对较小的输出执行.compute(),则计算将在加载数据的相同工作器中进行,从而避免了序列化和通讯费用。

通常来说,如果 数据可以舒适地存储在内存中,那么熊猫可能会表现得非常快。