我正在使用 dask.distributed 集群,我想将一个大数据帧保存到一个 CSV 文件到 S3,如果可能的话保持分区的顺序(默认情况下 to_csv() 将数据帧写入多个文件,每个分区一个)。此外,这个文件存储操作也应该作为惰性/延迟任务执行(它应该在集群工作人员上执行)。
我能想到的第一个解决方案是将分区存储在临时 S3 位置,然后在延迟函数中使用 S3 分段上传将这些文件合并/上传在一起。临时存储在这里是一个缺点。
可以使用 dataframe.to_delayed() 来完成吗?上传需要由单个延迟函数执行(S3没有追加操作),同时dataframe可能大于worker的内存,因此该函数不能简单地依赖所有dataframe分区。
PS。CSV 格式是此用例的要求。