我有一个带有
Dimensions: (space: 726, time: 579)
Coordinates:
* space (space) MultiIndex
- latitude (space) float64 -90.0 -82.5 -82.5 -82.5 -82.5 -82.5 -82.5 ...
- longitude (space) float64 0.0 0.0 60.0 120.0 180.0 240.0 300.0 0.0 30.0 ...
标签: Dask
dask-distributed
我们有一个实现以下内容的要求。给定将提供已知数量消息的Redis通道:
对于从通道消耗的每条消息:
从Redis获取JSON文档
解析JSON文档,提取结果对象列表
跨所有结果对象聚合以生成单个结果
我们希望将步骤1和步骤2分发给许多工作人员,并避免将所有结果收集到内存中。我们还希望显示这两个步骤的进度条
然而,我们无法找到一种很好的方法来构造应用程序,这样我们就可以看到进展并在系统中保持工作的进行,而不会因为不合适的时候而阻塞
例如,在步骤1中,如果我们从Redis通道读入一个队列,那么我
标签: Dask
dask-distributed
如果有一个Dask集合d依赖于一些持久化的内容,那么获得d所依赖的所有未来的列表的最佳方法是什么?您可能需要该函数
dask.distributed.client.futures_of
它也可以作为客户端的方法提供
这在Dask中是否有效使用了pure
假设在计算过程中,bar从未更改,但在我设置计算时它可能会更改
from dask import delayed
class a:
def __init__(self):
self.bar = 1
def foo(self, b):
return self.bar + b
def dask_foo(self, b):
return delayed(self.foo, pure=Tru
我对Dask印象深刻,我正在尝试确定它是否是解决我问题的正确工具。我正在构建一个交互式数据探索项目,用户可以交互地更改图形的参数。有时这些更改需要重新计算整个管道以生成图形(例如“显示来自不同时间间隔的数据”),但有时不需要。例如,“更改平滑参数”不应要求系统重新加载未平滑的原始数据,因为基础数据是相同的,只有处理过程发生了更改。系统应改为使用已加载的现有原始数据。我希望我的系统能够保留中间数据对象,并根据数据可视化的哪些参数已更改,智能地确定需要重新运行图形中的哪些任务。看起来Dask中的缓存
标签: Dask
dask-distributeddask-kubernetes
我正在Kubernetes命名空间中运行Dask网关。我能够使用以下代码连接到网关,而不是在Docker容器中运行
from dask.distributed import Client
from dask_gateway import Gateway
gateway = Gateway('http://[redacted traefik ip]')
cluster = gateway.new_cluster()
但是,当我从Docker容器运行相同的代码时,我在gateway.new\u
标签: Dask
netcdfpython-xarray
我试图在数据集上执行一个相当简单的操作,包括编辑每个3.5GB的netcdf文件上的变量和全局属性。使用xr.open\u dataset立即加载文件,但是dataset.to\u netcdf()太慢,修改后无法导出。
我试过:
无需重新调整和dask调用
不同的块大小,后跟:
在之前使用load()加载到\u netcdf
在之前使用persist()或compute()来
我在一个HPC上工作,有10个分散的工人。在所有情况下,每个文件所用的时间都超过15分钟。这是预期的吗?除了使用das
我尝试了几个端口都没有成功:8787确实在忙着为rstudio服务。我可以重定向rstudio,但是下面的工作不应该吗
from distributed import Client, LocalCluster
cluster = LocalCluster( scheduler_port = 8785 , n_workers = 2 )
错误:
/home/ec2-user/anaconda3/lib/python3.6/site-packages/distributed/bokeh/core.
关于将缓存集成到dask延迟图中,目前的技术状况如何?我有一些大型图,这些图的路径将从持久缓存(如磁盘)中获益匪浅,并且在每次单独运行图(如跨处理)时,都会通过参数进行散列
我的期望是有一个api,我可以在图形优化阶段与之集成,在适当的情况下用从磁盘加载的常量替换节点。看来cachey应该是我的切入点,但我还不能让它与纯dask延迟示例一起工作。是的,cachey可能可以处理这个问题。您可能指的文档页面如下:
如果有一个特定的bug,我建议您打开bug报告
标签: Dask
dask-distributed
一切都很好,但是如果客户端重新启动呢?我怎样才能拿到票
从名为忍者的工作人员那里回来的演员?到2019-03-06年,没有面向用户的方法可以做到这一点
我建议提出一个特性请求问题
client = Client('127.0.0.1:8786',direct_to_workers=True)
future1 = client.submit(Counter, workers= 'ninja',actor=True)
counter1 = future1.result()
我在PBS集群上运行Dask。我的节点是由于服务器负载的波动而需要不确定时间的下载。我已经设置了相当大的墙时间(例如4小时)的作业,这些作业应该能够包含许多单独的节点/下载。然而,我有数以万计的下载,所以在所有下载完成之前,作业将超时
两个问题:
当使用PBSCluster.scale(n)启动作业时,当作业超时时,是否会自动启动新作业以取代它们
当一个作业死亡(例如由于超时)时,在该作业上运行的节点是在另一个作业上重新启动的,还是丢失的
谢谢
当使用PBSCluster.scale(n)启动作
标签: Dask
python-xarraydask-distributed
在PBS集群上使用dask客户机运行xarray时,我遇到了一些奇怪的行为。
当选择多个节点(aka-cluster.scale())时,进程会不断失败,并提示下面的错误。
奇怪的是,当只运行一台1机器“cluster.scale(1)”时,进程运行平稳
传唤工人守则-
'''
'''
错误-
'''
''我建议尝试提供一个最小的可复制示例。乍一看,您的错误似乎与dask作业队列无关。我会尝试看看是否可以用LocalCluster复制它。如果您还没有更新dask,我也建议您进行更新。
clust
我已经尝试了来自的示例,以获得成功的HalvingSearchCV
from sklearn.datasets import make_circles
import numpy as np
from sklearn.neural_network import MLPClassifier
import dask.array as da
from dask_ml.model_selection import SuccessiveHalvingSearchCV
from distributed imp
我们有一个处理图像的代码,这涉及到运行和删除图像。
由于我们有数百万张图像,我们想用Dask并行处理我们的任务。我们的问题是,尽管我们设法在图像的子集上运行代码,但当放大(在我们的纱线簇上运行大量数据)时,代码崩溃。
我们试图以各种方式配置客户端,但找不到正确的配置。
我们的图像存储在拼花文件中(这是我们接收它们的方式)。下面是在客户端上下文管理器中运行的代码:
def hex-to-img(hex-data:str)->图像:
尝试:
bin\u数据=字节。从十六进制(十六进制数据)
流=io
我正在使用dask读取csv文件。但是,由于以下错误,我无法对其应用或计算任何操作:
您知道这个错误是怎么回事吗?如何修复它?在dask中读取csv文件时,如果无法识别正确的列数据类型,就会出现错误
例如,我们使用dask读取csv文件,如下所示:
import dask.dataframe as dd
df = dd.read_csv('\data\file.txt', sep='\t', header='infer')
这将提示上述错误
为了解决这个问题,@mrocklin在这个评论中建
我有一个dask数组,它的图形最终基于底部的一组numpy数组,并对它们应用元素操作。使用da.store计算数组并将结果存储回原始备份numpy数组是否安全,从而使整个过程成为就地操作
如果您认为“您使用的dask是错误的”,那么请参阅下面的详细版本,了解我为什么觉得有必要这样做
长版本
我将dask用于一个应用程序,其中原始数据来自内存中的numpy数组,该数组包含从科学仪器收集的数据。目标是用原始数据填充大部分RAM(比如75%+),这意味着没有足够的内存来创建内存中的副本。这使得它在语义
标签: Dask
dask-distributed
假设一个dask集群有一些CPU设备和一些GPU设备。每个设备运行一个dask工作进程。现在,问题是我如何发现dask工作程序的底层设备是CPU或GPU
例如:-如果dask工作程序在CPU设备上运行,我应该知道它在CPU上运行,或者如果dask工作程序在GPU设备上运行,我应该以编程方式知道设备类型。有什么方法可以通过编程来了解这一点吗?上面评论中的链接答案是关于提前按资源标记不同的工人,然后根据他们可能需要的资源分配任务
相反,也许您希望以异构的方式运行计算,也就是说,您不介意哪个任务可以在
标签: Dask
dask-distributed
我正在阅读关于dask.distributed的文档,看起来我可以通过client.submit()向分布式集群提交函数
我有一个现有函数some_func,它异步抓取单个文档(比如,文本文件),我想获取原始文档,抓取所有不包含元音的单词,并将其推回到另一个数据库中。此数据处理步骤是阻塞的
假设有数百万个文档,分布式集群只有10个节点和1个可用进程(即一次只能处理10个文档),dask.distributed将如何处理需要处理的文档流
下面是一些示例代码:
client = dask.distr
我试图从位于的dask ml文档中复制dask xgboost示例。不幸的是,Dask似乎没有完成培训,我很难找到错误和警告的含义。这是我的密码:
def main():
cluster = LocalCluster()
dask_client = Client(cluster)
x, y = make_classification(n_samples=1000, n_features=10, chunks=10, n_informative=4, random_sta
标签: Dask
dask-distributed
我有一个项目结构如下
- topmodule/
- childmodule1/
- my_func1.py
- childmodule2/
- my_func2.py
- common.py
- __init__.py
client = Client(YarnCluster())
client.submit(MyFuncClass1.execute)
在Dask集群边缘节点上的Jupyter笔记本中,我正在执行以下操作
from topm
标签: Dask
dask-distributed
这有可能吗?您不应该在同一个Python会话中创建多个客户端。也许有必要更深入地了解为什么您要多次给客户打电话
如果已经有一个Dask群集在默认地址上运行,则可以设置Dask_调度程序_地址环境变量,该变量将指示客户端在那里查看,而不是创建本地群集
from dask.distributed import Client
Client()
Client(do_not_spawn_new_if_default_address_in_use=True) # should not spawn a n
使用Pycharm社区2018.1.4
Python 3.6
Dask 2.8.1
尝试在我的一些方法上实现dask延迟,但出现错误
AttributeError: module 'dask' has no attribute 'delayed'.
这显然不是真的,所以我想知道我做错了什么。我的实施结构如下:
进口达斯克
def总管
对于enumaratefilenames中的i,fn:
数据={}
对于0,2范围内的x:
data.updatedask.delayedload_datafn,
我有以下格式的Dask数据帧:
date hour device param value
20190701 21 dev_01 att_1 0.000000
20190718 22 dev_01 att_2 20.000000
20190718 22 dev_01 att_3 18.611111
20190701 21 dev_01 att_4 18.706083
20190718 22 dev_01 att
我的用例是,我希望将文件路径或过滤器作为xcom传递给Airflow中的任务,以便我的下一个任务可以读取刚刚处理的数据
任务A将表写入分区数据集,并生成大量拼花文件片段-->任务B稍后将这些片段作为数据集读取。不过,我只需要读取相关数据,而不需要读取可能有数百万行的整个数据集
我测试了两种方法:
在我完成写入数据集后立即列出修改过的文件。这将为我提供一个路径列表,我可以在下一个任务中调用ds.dataset(路径)。我可以在这些路径上使用partitioning.parse(),或者检查片段以获
标签: Dask
dask-distributed
我正在使用Dask纱线创建这样的应用程序:
spec = skein.ApplicationSpec( ... )
cluster = YarnCluster.from_specification(spec)
client = Client(cluster)
通常,我会从命令行运行warn application-list,并获取指向Skein web UI的应用程序跟踪URL。我想通过编程将此url放入日志中。我看到Skein通过applicationclient对象()提供了这一点,但我不
标签: Dask
dask-distributed
我有一个分布式dask阵列,形状(2400)和chunksize(100100)。我想我可以用topk(-n)来找到最小的n值。但是,它似乎返回了一个形状数组(2400,n),因此它似乎在每一行中找到了最小的n。有没有办法使用topk在所有行(整个数组)中获得最小的n值
一个想法是调用topk两次,每个轴调用一次
>>> dist
dask.array<pow, shape=(2400, 2400), dtype=float64, chunksize=(100, 100)
标签: Dask
parquetfastparquet
可以用Python从不同的进程中编写相同的拼花文件夹吗
我使用的是fastparquet
这似乎是可行的,但我想知道,如果两个进程同时向它写入数据,那么\u元数据文件怎么可能没有冲突
此外,为了使其正常工作,我必须使用ignore_divisions=True,这对于以后读取拼花地板文件时获得快速性能来说并不理想,因为Dask会整合单独进程中的元数据,以便在其余进程完成后,它只写入\u metadata文件,而这是在单个线程中发生的
如果使用自己的多处理设置将单独的拼花地板文件写入单个文件夹,则
标签: Dask
dask-distributed
当使用基本CLI方法(即dask调度程序、dask工作程序)设置分布式dask群集时,dask调度程序节点是否也需要与工作程序节点相同的环境(例如包)?我有一个docker swarm,其中NVIDIA Jetson AGX(Arm64v8+GPU)单元作为工作单元,Intel x86-64服务器作为调度程序(无GPU),因此要拥有相同的环境并不容易(如果不可能的话)。请求将主要来自Jetson单位提供的Jupyter笔记本电脑。因此,请求和计算环境是相同的(不同的容器,但图像相同),只是调度程
标签: Dask
dask-distributeddask-dataframe
假设您有10个不同的ddf,它们都有相同的索引,是否有比这更快的选项将其全部合并在一起
# Pseudo code
ddfs_to_be_merged = []
ddfs_to_be_marged.append(ddf_with_same_index1)
ddfs_to_be_marged.append(ddf_with_same_index2)
ddfs_to_be_marged.append(ddf_with_same_index3)
target = dd.DataFrame() #
我试图在一个数据帧中处理多个主题的数据。每个主题有>30个主题和14个计算。这是一个大数据集,但超过5个会占用调度程序节点上的内存,而没有在与调度程序相同的节点上运行任何工作程序。是否有128gb的内存?如果我做错了什么,你知道我该怎么做吗?代码:贝娄
def channel_select(chn,sub):
subject = pd.DataFrame(df.loc[df['sub'] == sub])
subject['s0'] = subject[chn]
val
我有一个dask系列,我需要从中删除INF和NAN.dropna()仅删除NAN。在numpy/pandas中,我会做一些类似于result=result[np.isfinite(result)]的事情。dask land的推荐等效物是什么?使用布尔数组索引dask对象会导致错误。有没有办法告诉dask应该将inf或-inf视为空值,例如?您应该避免使用NumPy函数。这些将触发计算和未来的dask。数据帧操作将对使用这些结果犹豫不决
相反,请使用等效的dask.array函数。这里是一个最小的
标签: Dask
dask-distributed
我有一个较大的对象(150MB),需要广播给所有dask分布式工作者,以便在将来的任务中使用。我尝试了几种方法:
Client.scatter(broadcast=True):这需要从一台机器(我正在运行客户端和调度程序)发送所有数据,这会造成带宽瓶颈
Client.submit后接Client.replicate:这些工作人员共享一个文件系统,因此我可以安排加载数据的任务,然后将数据复制到所有工作人员,而不是发送数据。这似乎使用了一种树策略来分发数据,这比前面的选项更快
但是,强制每个工作
PCIE总线带宽延迟强制限制应用程序向GPU复制数据以及从GPU复制数据的方式和时间
当直接使用cuDF时,我可以有效地将单个大数据块移动到单个数据帧中
当使用dask_cudf对我的数据帧进行分区时,dask是否将分区一次复制到GPU内存中?成批?如果是这样的话,多个拷贝操作而不是单个较大的拷贝是否会产生很大的开销?这可能取决于您使用的调度程序。自2019年2月19日起,dask cudf默认使用单线程调度程序(如果在多线程中使用,cudf会出现一段时间故障),因此,如果您不使用某些dask.
标签: Dask
dask-distributed
在Dask通过ddf.visualize()输出的任务图中,我看到许多*-repartition-split-repartition-merge任务,其中*可以是join、rename或我从应用程序中识别的其他任务
我试图确定这些数据来自何处,它们是否会对性能产生影响(我想象不断地重新划分/分割/合并数据会带来成本,而不会直接帮助我实现计算目标),如果是,我如何删除它们
在distributed提供的performance\u报告中,它们似乎占据了计算时间的主导地位
查看Dask源代码,我可以在
标签: Dask
netcdfpython-xarray
我试图从u和v分量计算一年数据的风速,时间步长为每小时,分辨率为0.1 x 0.1度,总共40年。1年内的单个u和v netcdf文件约为5GB。我已经实现了一个基本的for循环,其中每年的u和v netcdf文件通过Xarrayopen_dataset打开,并重新调整以将其作为dask数组,然后进行计算,并将结果导出为新的netcdf。
当循环运行时,第一次迭代几乎是瞬间发生的,但是下一次迭代花费的时间太长(几乎到了它似乎停止的程度)。我不明白我的代码的哪一部分在这里是瓶颈,为什么。任何帮助都
标签: Dask
dask-distributeddask-dataframe
我有三台机器
16芯32GB
其中一台机器是调度程序和工作程序
当我运行此代码时:
from distributed import Client
client = Client('ip')
import dask.array as da
x = da.random.random((400000,400000), chunks=(10000, 10000))
y = da.exp(x).sum()
y.compute()
它跑得很快,看起来效率很高:
但当我试图阅读拼花地板文件时
它运行
我无法解释为什么dask要为map_块中的每个任务创建一个进程。这是我的密码:
编辑:这是一个最小的可复制示例。我在Ubuntu18.04上运行它,但这应该是可以忽略的:
import os
from multiprocessing.pool import ThreadPool
import dask
import dask.array as da
import h5py
import numpy as np
MY_USER_NAME = "myusername"
EARTH_RADIUS
我在kubernetes上使用dask docker图像进行标准集群设置,但不使用dask helm图表。我尝试在集群上运行现有脚本,但似乎没有运行。它不断地抛出错误
集群详细信息:1个笔记本电脑、1个调度程序、1个工人和1个共享卷。
我读了一些关于被杀工人的帖子,所以我查看了日志,但没有弄清楚
distributed.worker-ERROR-None Traceback(最近一次调用):文件“/opt/conda/lib/python3.7/site packages/distributed
当将Dask与Dask阵列一起使用时,我突然出现以下错误,我的内核死机/重新启动
控制台显示:
BLAS : Program is Terminated. Because you tried to allocate too many memory regions
我在mac上用Anaconda和OpenBLAS。有什么想法吗
注意:这个问题是通过其他方式向我提出的,我在这里重复它以供将来参考简短回答
Dask和OpenBLAS都试图同时并行化。这会触发OpenBLAS中的检查,从而导致硬故障。
标签: Dask
dask-distributed
下面是一个简单的代码片段:注释后跟####很重要
from dask.distributed import Client
### this code-piece will get executed on a dask worker.
def task_to_perform():
print("task in progress.")
## do something here..
print("task is over.!")
### whereas the below
标签: Dask
dask-distributed
您好,我想从头开始构建分布式磁盘
我读了说明书
但是经过这些步骤,我得到了错误
当我使用pytestdistributed--verbose
文件“/Users/bielefem/Dev/dask/distributed/distributed/init.py”,第3行,在
从…起导入配置
文件“/Users/bielefem/Dev/dask/distributed/distributed/config.py”,第13行,在
config=dask.config.config
Attribut
我有大约70gb的MD模拟输出。文件中定期重复的固定行数解释和固定行数数据的模式。如何逐块读取Dask数据帧中忽略解释行的文件
我成功地在pandas.read_csv的skiprows参数中编写了一个lambda函数,以忽略解释行,只读取数据行。我将熊猫输入的代码转换为dask one,但它不起作用。在这里,您可以看到通过将pandas.read_csv替换为dd.read_csv编写的dask代码:
#首先提取原子数,进而提取数据线数:
以open(filename[0],mode='r')
我有以下基本代码,我认为应该设置xarray以使用LocalCluster
from dask.distributed import Client
client = Client("tcp://127.0.0.1:46573") # this points to a LocalCluster
import xarray as xr
ds = xr.open_mfdataset('*.nc', combine='by_coords') # Uses dask to defer actually
我知道这对于运行代码的环境来说是非常特殊的,但是如果dask在DAG中提前计算其执行计划,有没有办法理解执行需要多长时间
运行执行后,进度条会有很大的帮助,但是否可以事先了解一系列操作需要多长时间?简短回答
没有
解释
Dask调度程序只执行Python函数。它不考虑它们来自何处,也不考虑它们所代表的更广泛的上下文(例如,数据帧连接或矩阵乘法)。从它的角度来看,它刚刚被要求执行一个不透明函数调用图。这种通用性是一个弱点(难以执行高级分析),但也是Dask的主要优势,因为它可以应用于任何特定领域或
我正在使用一个dask包来处理从一组实验中收集的痕迹数据处理的并行化。每次实验的数据文件路径都会转换为自定义对象,我对此类数据执行的常见操作是对象方法
每个物体都有一个与特定实验相关的识别号。在程序中的某个时刻,我想用这个ID号来删除一些实验。在这个任务图中,从一个序列创建一个对象,然后应用去趋势化和反褶积函数,然后执行删除操作
因为实验标识号是静态的,所以可以在任务图中的任何步骤执行删除操作,最终结果将是相同的。但是,如果按照其他计算成本高昂的方法执行删除操作,则结果会慢得多,因为这些计算是
标签: Dask
dask-distributeddask-delayed
是否有方法向Dask调度程序/工作人员控制台日志添加/启用时间戳
dask:0.15.0-py35_0
分发:1.17.1-py35_0
如果我使用上述版本,则不会启用-
调度程序-
distributed.scheduler - INFO - -----------------------------------------------
distributed.scheduler - INFO - Scheduler at: tcp://192.168.200.23:8600
distri
在Dask中有没有一种简单的方法可以将纯python模块推送到工作人员手中
我在一个集群中有许多工作人员,我想分发我在客户端上拥有的本地模块。我知道对于像NumPy或Python这样的大型软件包,我应该以一种更健壮的方式分发东西,但是我有一个经常更改的小模块,它不需要太多的工作来移动。是的,使用这种方法
此方法将分发文件,如果文件以.py或.egg结尾,则还将在每个Worker上导入并重新加载模块。是,请使用此方法
此方法将分发文件,如果文件以.py或.egg结尾,则还将在每个辅助进程上导入并重
标签: Dask
pyarrowfastparquet
我用dask写和读拼花地板。我使用fastparquet引擎写作,使用pyarrow引擎阅读。
我的工人有1GB内存。使用fastparquet时,内存使用情况很好,但当我切换到pyarrow时,它会爆炸并导致工作程序重新启动。
下面我有一个可复制的示例,它在1gb内存限制的工作进程上使用pyarrow失败。
实际上,我的数据集比这个大得多。使用pyarrow的唯一原因是,与fastparquet(大约7x-8x)相比,它在扫描时提高了速度
dask:0.17.1
pyarrow:0.9.0.p
dask的read_csv()函数不能一次正确读取所有csv,但dask_cudf可以
da=dd.read\u csv(os.path.join('data','*.csv'))
打印(da.head())
您能提供错误消息并以可能被复制粘贴的格式输入数据吗?您能提供一个吗?@gbajson没有错误消息。dask无法正确读取文件,并且具有Nan值。输入数据:时间戳、投标价格、Askprice、Bidvolume、Askvolume 20040101 22:00:498,1.2542,1.254
使用启动daskLocalCluster时
from dask.distributed import Client
client = Client()
在中断jupyter内核并重新运行celldask之后,会反复显示以下警告
distributed.comm.tcp - WARNING - Closing dangling stream in <TCP local=tcp://127.0.0.1:49408 remote=tcp://127.0.0.1:37487>
dist
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页