分布式分布式:提高小数据帧的速度

问题描述 投票:0回答:1

我正在尝试使用dask将Web服务器上的工作分担给交互式数据分析应用程序的工作人员。对于我的应用程序典型的数据帧大小而言,简单的groupby()mean()dask上的速度是内存pandas计算的三倍。我了解这不是dask的目标。但是,我发现分发的dask更适合在交互式应用程序中卸载数据(与Celery的作业无法进行交互相比)。

除了执行持久性操作外,我还有什么可以做的以进一步提高计算速度。例如,能否以某种方式通知系统数据帧较小,所以最好只在计算所依赖的持久数据所在的节点上执行它?

csv = dd.read_csv(r'path-to-csv.csv')
df = csv.persist()

# Bringing to this machine
df2 = df.compute()

def f1():
    return df.groupby('Color').mean().compute()

def f2():
    return df2.groupby('Color').mean()

timeit.timeit('f1()', setup='from __main__ import f1', number=100)
timeit.timeit('f2()', setup='from __main__ import f2', number=100)
python dask dask-distributed
1个回答
0
投票

Modin可能是您正在寻找的解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.