关于集群调度程序和单机分布式调度程序的困惑

时间:2018-06-28 11:30:26

标签: dask dask-distributed

在下面的代码中,为什么dd.read_csv在集群上运行? client.read_csv应该在群集上运行。

import dask.dataframe as dd
from dask.distributed import Client

client=Client('10.31.32.34:8786')
dd.read_csv('file.csv',blocksize=10e7)
dd.compute()

一旦创建了客户端对象,所有的api调用都会在集群上运行吗?

2 个答案:

答案 0 :(得分:2)

命令dd.read_csv('file.csv', blocksize==1e8)会生成许多pd.read_csv(...)命令,每个命令都将在您的敏捷工作者上运行。每个任务将查找file.csv文件,在该文件中由您的块大小定义的某个位置,然后读取这些字节以创建熊猫数据框。每个工作人员应该普遍使用file.csv文件。

人们通常使用一些通用存储中的文件,例如网络文件系统,数据库或云对象存储。

答案 1 :(得分:1)

除了第一个答案:

是的,为分布式客户端创建客户端后,它将成为完成所有工作后 all 的默认调度程序。但是,您可以按照以下步骤指定要在哪里运行工作

  • 用于特定计算,

    dd.compute(scheduler='threads')
    
  • 获取黑色代码,

    with dask.config.set(scheduler='threads'):
        dd.compute()
    
  • 直到另行通知,

    dask.config.set(scheduler='threads')
    dd.compute()
    

请参见http://dask.pydata.org/en/latest/scheduling.html