使用 dask 而不使用 > client = Client()

raf*_*ine 1 python dask

关于黄昏。

我想将 parquet 文件读取为 df 并运行 groupby 函数

我的问题是为什么我应该先运行这段代码?

from dask.distributed import Client, progress
client = Client()
client
Run Code Online (Sandbox Code Playgroud)

不仅仅是

import dask.dataframe as dd
        
df = dd.read_parquet(r'C:\Users\ggg\mis_1.parquet')
g=df.groupby('id')['id'].count().compute() 
Run Code Online (Sandbox Code Playgroud)

对我来说,没有客户它效果更好

mdu*_*ant 6

您应该阅读此页面来比较调度程序:https://docs.dask.org/en/stable/scheduler-overview.html

如果您没有client,您将使用默认调度程序进行操作,这将是数据帧操作的线程调度程序。如果它的开销极低,并且通过在进程内占用相同的内存空间来避免内存复制。然而,它并不那么智能,并且对于持有 GIL 的函数来说效果很差。如果它适合您,请使用它!

分布式调度程序提供了更多选项。您可以选择线程/进程组合,甚至可以让所有调度程序和线程处于进程中(这应该与简单的线程调度程序一样执行。此外,它还通过仪表板提供对内存管理和诊断的更多控制。当然,如果您确实需要将计算分布在多台计算机上,这是您唯一的选择。此选项通常是更好的选择,因此通常推荐使用。但是,Client()仅提供默认选项,这可能不是可选的。