我试图在许多地方找到答案,但从未得到直接答案。 Modin Speedup是否适用于数据帧?具有跨Dataframe并行应用功能而不是逐行执行典型功能的智能吗?
或
我们应该选择Spark Dataframe来加速应用功能吗?
很抱歉,如果有简单的答案,我总是会得到有关modin在阅读或某些功能中有多快的答案,很少适用。
答案 0 :(得分:2)
要了解Modin如何加快Pandas运作速度,请简要介绍一下其架构。 Modin Frame是分区的2D数组,其中每个分区都是Pandas DataFrame (link to doc with explainfull images)。通常,DataFrame在N_cores
分区中进行拆分,因此,当我们在Modin Frame下执行某些操作时,它将在每个分区上并行进行操作,这就是Modin加快Pandas计算速度的方式。
Modin具有灵活的分区机制,它可以根据操作动态重新分配帧。例如,当我们执行需要了解整行的操作时(例如df.apply(fn)
,其中fn
希望获得该行,因此我们需要了解整行)Modin框架将仅在行分区中重新分区,所以
modin_df.apply(fn)
将执行类似this (explainfull img)的操作。
从图像中可以看到,如果我们有一个形状为(100000,64)的框架并应用一个函数,我们将在(100000 / N,64)个形状框架下获得.apply()
的N个并行执行,这将得到不错的速度。