DASK dataframe.to_csv将文件存储在工作机上而不是本地

DASK dataframe.to_csv将文件存储在工作机上而不是本地,dask,dask-distributed,Dask,Dask Distributed,我是DASK的新手,我正在尝试在私有云上建立一个分布式集群。现在我有调度器和一个worker,它们都运行在同一台机器上的同一个Docker容器中。它们从dask调度程序和dask工作者开始tcp://localhost:8786 我正在从本地计算机连接到调度程序。为了简单起见,假设我在本地运行IPython控制台,在目录/home/my_user/local_目录下。我在跑步: from dask.distributed import Client client = Client('schedu

我是DASK的新手,我正在尝试在私有云上建立一个分布式集群。现在我有调度器和一个worker,它们都运行在同一台机器上的同一个Docker容器中。它们从
dask调度程序
dask工作者开始tcp://localhost:8786

我正在从本地计算机连接到调度程序。为了简单起见,假设我在本地运行IPython控制台,在目录
/home/my_user/local_目录下。我在跑步:

from dask.distributed import Client
client = Client('scheduler_host:scheduler_port')
这个很好用。我可以做一些操作,安排工作,
数据帧上的
.compute()
也可以按预期工作

我在将结果保存到文件时遇到问题。从中执行示例并运行时:

import dask
import os
if not os.path.exists('data'):
    os.mkdir('data')
df = dask.datasets.timeseries()
df.to_csv('data/*.csv')
我希望csv文件(1..30.csv)将在本地
数据
目录中创建,即在本地机器上的
/home/my_user/local_目录/data
中创建。相反,文件保存在调度程序/工作计算机上的
/home/my\u user/local\u目录/data
目录中。将最后一行替换为
df.to_csv('data/test.csv',single_file=True)
时也会发生同样的情况

当用
df.to\u parquet('test.parquet')
替换该行时,会发生一些更有趣的事情。在
parquet
案例中,将在我的本地计算机上创建一个空的
test.parquet
目录,并将结果存储在调度器/worker上的
/home/my\u user/local\u directory/test.parquet
中。如果目录在本地不可访问,它还会引发错误

根据,运行
到_parquet
应该将文件保存在本地。但是,根据该协议,这些文件是在工作机器上本地创建的。如果第二个是真的,为什么要在本地创建拼花地板目录?为什么工人在存储数据时会使用我的本地路径


它应该是这样工作的吗?也许我的设置有问题?请告知!提前谢谢你

Dask数据帧存储函数保存工作程序的结果。通常,人们将Dask用于全局文件系统,如NFS、HDFS或云对象存储

如果要在本地存储内容,则应在单个计算机上使用Dask,或者如果结果很小,则可以调用
.compute
将结果作为pandas数据帧带回本地计算机,然后使用pandas存储功能