将dask集合异步存储到文件/CSV

将dask集合异步存储到文件/CSV,dask,dask-distributed,Dask,Dask Distributed,我正在使用dask.distributed实现各种数据处理管道。通常原始数据是从S3读取的,最终经过处理的(大型)集合也会写入S3上的CSV 我可以异步运行处理并监视进度,但我注意到所有将集合存储到文件的to_xxx()方法似乎都是同步调用。它的一个缺点是,调用可能会阻塞很长一段时间。第二,我无法轻松构建一个完整的图形,以便稍后执行 是否有一种方法可以异步运行,例如获取未来的对象而不是阻塞 PS:我非常确定我自己可以实现异步存储,例如,通过将集合转换为delayed()并存储每个分区。但这似乎是

我正在使用dask.distributed实现各种数据处理管道。通常原始数据是从S3读取的,最终经过处理的(大型)集合也会写入S3上的CSV

我可以异步运行处理并监视进度,但我注意到所有将集合存储到文件的to_xxx()方法似乎都是同步调用。它的一个缺点是,调用可能会阻塞很长一段时间。第二,我无法轻松构建一个完整的图形,以便稍后执行

是否有一种方法可以异步运行,例如获取未来的对象而不是阻塞


PS:我非常确定我自己可以实现异步存储,例如,通过将集合转换为delayed()并存储每个分区。但这似乎是一种常见情况——除非我错过了已有的功能,否则最好在框架中包含类似的功能。

大多数
to.*
函数都有一个
compute=True
关键字参数,可以用
compute=False
替换。在这些情况下,它将返回一系列延迟值,然后您可以异步计算这些值

values = df.to_csv('s3://...', compute=False)
futures = client.compute(values)