Dask袋分区和工人之间如何关联?
我使用了一个普通的Dask-Kubernetes设置,其中有两个worker和一个调度器来迭代某个JSON文件的行(并应用一些函数,为了简单起见,这里没有出现这些函数)。我只看到一个工人在工作,而我希望看到他们中的两个 希望重新分区能有所帮助,我已经为Dask袋分区和工人之间如何关联?,dask,dask-distributed,dask-kubernetes,Dask,Dask Distributed,Dask Kubernetes,我使用了一个普通的Dask-Kubernetes设置,其中有两个worker和一个调度器来迭代某个JSON文件的行(并应用一些函数,为了简单起见,这里没有出现这些函数)。我只看到一个工人在工作,而我希望看到他们中的两个 希望重新分区能有所帮助,我已经为bag.repartition(num)尝试了不同的值,它们返回不同的行数,但它们不会改变工作进程不平衡和只集中在一个工作进程上的内存消耗 我想我不理解分区和工作区之间的相关性,在Dask文档中也找不到任何与之相关的内容。欢迎任何帮助或指点 将da
bag.repartition(num)
尝试了不同的值,它们返回不同的行数,但它们不会改变工作进程不平衡和只集中在一个工作进程上的内存消耗
我想我不理解分区和工作区之间的相关性,在Dask文档中也找不到任何与之相关的内容。欢迎任何帮助或指点
将dask.bag作为数据库导入
def grep_建筑物():
基数=”https://usbuildingdata.blob.core.windows.net/usbuildings-v1-1/"
b=db.text.read_text(f“{base}/Alabama.zip”)
#b=b.重新划分(2)
线=b.取(3_000_000)
回程线
len(grep_大厦())
在您的示例中,您打开的是文件,文件被压缩
db.text.read_text(f"{base}/Alabama.zip")
Dask能够并行打开和处理多个文件,每个文件至少有一个分区。Dask还能够将单个文件分割成块(参数blocksize
);但这只适用于未压缩的数据。原因是,对于整个文件压缩方法,到达未压缩流中某个点的唯一方法是从头开始读取,因此每个分区都将读取大部分数据
最后,当您从单个分区开始时,重新分区对您没有任何帮助:您需要先读取整个文件,然后再将数据拆分为多个部分以用于下游任务