标签: Dask
dask-distributed
我正在对dask数据帧应用多个操作。我可以为特定操作定义分布式工作人员资源需求吗
e、 g.我称之为:
df.fillna(value="").map_partitions(...).map(...)
我想为map_分区()指定资源需求(可能与map()的不同),但该方法似乎不接受resources参数
另外,我发现我可以在map_partitions()之后调用client.persist(),并在这个调用中指定资源,但这会立即触发计算。您可以在调用compute或persist时,通过提供
标签: Dask
python-xarrayxarray
我试图从3小时的全球数据集计算每日Tmax。我可以使用groupby来完成,但我想知道如何通过使用dask并行操作(例如使用apply_ufunc)来减少计算时间。如果有关于ufunc的好文档,请让我知道(关于xarray的文档对我来说不够详细,让我有点困惑,因为我之前没有任何关于dask的经验)。谢谢
下面是我的代码的样子:
TAS = xr.open_dataset(INFILE_template.format(YR, YR), chunks={'time':8})
DAYM
我正在尝试将数据从cassandra数据库加载到Dask数据帧中。我已尝试查询以下内容,但未成功:
query="""SELECT * FROM document_table"""
df = man.session.execute(query)
df = dd.DataFrame(list(df))
TypeError回溯(最近一次调用)
在()
---->1 a=dd.DataFrame(列表(df))
TypeError:\uuuuu init\uuuuuu()缺少3个必需的位置参数:
这可能是一个非常愚蠢的pb,但我无法从dask仪表板诊断带宽。我的印象是这条线总是很低以至于看不见,cf
在这种情况下,我可以使用仪表板获取值吗?是的,仪表板中有几个地方提到了带宽:
workers: the read/write network bandwidth is listed real-time per worker
bandwidth-per-workers: the aggregate bandwidth is accumulated per worker pairs
bandwi
我是Xarray和Dask的新手,尝试访问多个netCDF文件,这些文件以3小时为间隔存储全球海流速度。每个netCDF文件覆盖1/4度分辨率网格数据的一个时间间隔:
NetCDF dimension information:
Name: time
size: 1
type: dtype('float32')
_FillValue: 9.96921e+36
units: 'days since 1950-01-01 00:00:00 UTC'
calend
标签: Dask
dask-distributed
我试过下面的代码
from dask.distributed import Client, LocalCluster
worker_kwargs = {
'memory_limit': '2G',
'memory_target_fraction': 0.6,
'memory_spill_fraction': 0.7,
'memory_pause_fraction': 0.8,
'memory_terminate_fraction': 0.95,
}
clu
标签: Dask
dask-distributeddask-delayed
我试图从每个工人那里读取一个唯一的本地文件,但是我在所有工人中得到相同的结果,而不是每个工人的唯一结果……有人能指出我做错了什么吗
from dask.distributed import Client, progress
c = Client()
c
import dask.dataframe as dd
filename_1='/tmp/1990.csv'
filename_2='/tmp/1991.csv'
filename_3='/tmp/1992.csv'
future_1 =
我无法从dask阵列创建dask系列:
import dask.array as da
import dask.dataframe as dd
_dict = {'doc_faturamento': ['546102424238','946102424238','777702424238'],'data_vencimento':[20190307,20190310,20190311], 'data_pagamento': [20190227,20190324,22220202],'period
标签: Dask
dask-distributed
我在C:\script\data\YYYY\MM\data.feather中有数据
为了更好地理解Dask,我正在尝试优化一个简单的脚本,该脚本从每个文件中获取行数并对其进行汇总。200个文件中有近1亿行
import dask.dataframe as dd
import feather
from dask.distributed import Client,LocalCluster
from dask import delayed
counts = []
with LocalCluster
我目前使用的是分布式python包,有人知道在使用python API设置时如何获取web UI的地址吗
执行者=执行者()
或者我总是需要设置命令行
dask调度程序
要获取Web UI的地址?可以使用以下命令启动Web界面:
>>> executor.cluster.start_diagnostics_server()
INFO - Bokeh UI at: http://127.0.0.1:8787/status/
然后将打印出web界面的地址。然而,它几乎总是在h
从我读到的使用Dask delayed的简单示例中,我预计我可以通过以下几个函数调用从scikit learn复制gridsearchcv。由于循环的其余部分继续(pred(…),所以模型似乎永远不会适合(model.fit(…))
我如何嵌套函数是否存在问题?我知道dask有gridsearchcv,但问题是我的真实模型是多输入Keras LSTM,你不能将3d数组作为“X”传递。该代码在没有Dask的情况下串行工作良好
以下是一个可重复的小示例:
import dask
import pan
我在数据帧列上使用apply
(希望我不应该使用apply\u map,相反,文档对此并不清楚)。我想最大限度地利用闲置的多核大内存机器
我使用的是工人、线程和分区数量的最佳组合吗
client = Client(n_workers=cpu_count()-2, threads_per_worker=1, memory_limit='1GB')
ddf = daskDataFrame.from_pandas(df, npartitions=cpu_count()-2)
ddf['candid
标签: Dask
dask-distributeddask-delayed
我试图将150万个图像作为dask数组持久化到dask集群,然后获取一些摘要统计数据。我正在遵循一个示例,并已将我的脚本编辑为一个可重复性最低的示例:
import time
import dask
import dask.array as da
import numpy as np
from distributed import Client
client = Client()
def get_imgs(num_imgs):
def get():
arr = np
标签: Dask
dask-distributed
我注意到,与使用保姆相比,使用dask工人只使用流程而不使用保姆时,性能下降了5/6倍。这是预期的行为吗
我想在没有保姆的情况下管理达斯克,因为州政府在工人中。我理解在workers中有状态是不可取的,但它超出了我的控制范围(第三方库)
或者,如果我与保姆一起运行dask worker,我可以捕获工人故障/重新启动并重新初始化工人吗?保姆进程只是启动一个dask worker进程,然后观察它,如果它倒下,重新启动它。这根本不应该影响性能。如果您没有保姆,则无法捕获工作人员故障或重新启动。这是保姆
标签: Dask
dask-distributed
使用Dask分布式客户端时,我可以很容易地得到如下变量:
v = Variable('myvar')
v.get(timeout=5)
但如果我在一个不存在的密钥上执行此操作:
v = Variable('doesntexist')
v.get(timeout=5)
在5秒后给我:
distributed.utils - ERROR -
tornado.gen.TimeoutError
是否可以事先检查变量是否存在而不依赖超时
问候,,
Niklas这是一个有效的问题。目前我认为答案是
标签: Dask
dask-distributed
在某些类型的数据管道中,通过(比如)观察文件是否被写入,等待外部进程完成是很有用的。
在dask中天真地实现这一点会导致长时间运行的任务在整个工作进程中阻塞工作进程
def wait_for_file(filename='some_filename', max_wait_time=600):
start_time = time.time()
while True:
if time.time() - start_time > max_wait_time:
标签: Dask
dask-distributeddask-delayed
我最近尝试将我的Dask Distributed升级到2.3.0,并将fastparquet升级到0.3.2,但发现这会导致与Dask Distributed 2.1.0一起工作的代码出现死锁和工作人员退出(我想利用Dask 2.2.0+中的read_parquet特性“gather_statistics=False”)。看起来tornado可能对Dask的新版本不太好——我会收到一些错误,比如我在底部粘贴的错误
升级tornado似乎无法解决我在Dask 2.3.0中遇到的稳定性问题。我的群集
标签: Dask
dask-distributed
我在集群上分散了数据并提交了一个任务。我如何等到所有的期货都完成,然后做一个期货分组。我不想把所有的期货都收回给客户,因为它们都很大。我希望所有大型期货留在集群上,并将结果从groupby返回给客户端。
我试过在期货上使用语法,但它说这不是期货上的一种方法。我正在考虑使用submit,但无法理解语法
谢谢
def重复(df,编号):
df=pd.DataFrame(np.repeat(df.values,number,axis=0))
返回df
data=pd.DataFrame(np.rand
在上面的代码中,save函数不会将数据索引到我的Elasticsearch中。
我已经测试了与读取功能的连接,没有关于连接的问题
有人能告诉我为什么保存功能不工作吗
问候我以前没有听说过达斯克麋鹿-也许你应该在他们的回购协议上留下一份错误报告。你也可以考虑阅读——但是它没有写能力。
import dask.dataframe as dd
from dask_elk.client import DaskElasticClient
from elasticsearch import Elastics
标签: Dask
dask-distributed
我将输入数据作为单个大文件存储在S3上。
我希望Dask能够自动切碎文件,分发给工人并管理数据流。因此,使用分布式收集的想法,例如包
在每个worker上,我都有一个命令行工具(Java),可以从文件中读取数据。因此,我想将整个数据块写入文件,调用外部CLI/代码来处理数据,然后从输出文件读取结果。这看起来像是处理成批数据,而不是一次记录一次
解决这个问题的最佳方法是什么?是否可以将分区写入辅助进程上的磁盘并将其作为一个整体进行处理
PS.没有必要,但希望留在分布式收集模型中,因为对数据的其他操
我想使用已知的分区为dask数据帧(from_delayed)设置索引。然而,dask抱怨说,划分要求是唯一的。这个限制给我带来了麻烦,因为分区的大小大约为5GB,这对我来说有点太大了
对于某些操作,是否有办法绕过此限制或放松此限制?您应该将分区视为一种优化,这样dask就可以知道某些操作(groupby、获取特定索引行等)在哪个分区中需要哪些数据
如果您的数据没有以索引上的分区唯一的方式组织,您有一个简单的选择:根本不提供分区。然后,您将失去某些不适合您的情况的优化。或者,您可以决定在数据内部
我可以用另一个单独创建的、具有相同行数和相同结构的dask数据帧分区替换一个dask数据帧分区吗?
如果是,如何进行
可以使用不同的行数吗?您可以使用dd.concat功能将分区添加到Dask数据帧的开头或结尾
通过切换到延迟对象,将延迟对象插入列表,然后切换回dask数据帧,可以在数据帧中的任何位置插入新分区
list_of_delayed = dask_df.to_delayed()
new_partition = dask.delayed(pd.read_csv)(filename)
li
标签: Dask
dask-distributed
当使用Helm设置dask集群时,config.yaml文件中有一组变量用于自定义工作人员的数量,我希望在术语方面能得到一些帮助。例如,如果我设置了一个Kubernetes群集,其中包含16个虚拟机、8个内核/台机器和32GB/台虚拟机,那么我最终将拥有128个vCPU和512GB内存。如果我通过“掌舵…更新-f config.yaml”
看起来我应该能够创建64个工人,每个工人有2个CPU,并使用我所有的512 GB RAM。(减去专用于调度程序的资源)。然而,在实践中,分布式客户端最多有40
文档说我可以指定一个主机文件。伟大的但是,我的主机在各种不同的端口上运行ssh,文档没有详细说明我可以指定ssh端口号的方法。如何在dask ssh主机文件中指定ssh端口 从Dask 2.3开始不支持此操作
不过,你可能想提出一个问题
我目前正在以以下方式使用Dask
S3上有以下格式的文件列表:
/filetype1.gz
/filetype2.gz
/filetype1.gz
/filetype2.gz
…等等
我的代码读取filetype1的所有文件,并建立一个数据帧并设置索引(例如:df1=ddf.read\u csv(day1/filetype1.gz,blocksize=None,compression='gzip')。设置索引(index\u col))
读取filetype2的所有文件,并构建一个大数据帧
标签: Dask
dask-distributed
请参见下面的示例图像
在Dask分布式仪表板的“工作人员”选项卡下,每个工作人员有23个“num_fds”。“num_fds”是什么意思?这是否意味着每个工作人员打开了多少个文件描述符?如果是这样的话,托管调度程序进程的计算机上的文件描述符限制应该是什么
我的机器承载调度程序进程,限制为65K FD。但它能够创造出总数为69000的3000名工人
一般来说,我试图理解每个工作者的“num_fds”之间的关系以及这对集群意味着什么
谢谢大家!
我正在尝试使用Dask和Airflow实现一个数据管道。我希望能够向现有DAG添加/删除节点,类似于NodeJS中的中间件。我的想法是对数据帧进行pickle,以便下一步可以在pickle之前对其进行任何转换并将其传递到下一步。但是通过Dask并行处理,下一个节点可以分配给任何工作者。
我正在考虑让调度器和一些工人在本地工作。当我有一个大的工作,我可以解雇一些EC2工人来处理这项工作。
有什么建议吗?您不需要自己显式地序列化数据进行传输。
Dask将自动在节点之间移动数据,并根据需要序列化数据
我需要使用bucket owner完全控制将dask数据帧存储到S3上的CSV,以便授予bucket owner完全访问权限。有办法吗
以下代码无法实现此功能:
storage_opts = {'s3_additional_kwargs':
{'ACL': 'bucket-owner-full-control'}}
dataframe.to_csv(url, storage_options=storage_opts, **self.
标签: Dask
dask-distributed
基于streamz,可以通过以下方式利用dask分布式集群:
from distributed import Client
client = Client('tcp://localhost:8786') # Connect to scheduler that has distributed workers
from streamz import Stream
source = Stream()
(source.scatter() # scatter local elements
我有以下代码:
feature_array = da.concatenate(features, axis=1)#.compute()
model = KMeans(n_clusters=4)
model.fit(features, y=None)
现在,如果我先计算feature_array,这段代码运行得很好,但是如果没有它,它会产生一些我无法真正理解的内部类型错误:
File "/Users/(...)/lib/python3.7/site-packages/dask_ml/utils.
标签: Dask
dask-distributed
我有一些关于如何使Dask工人能够获得进口的问题。
1) 我看到,使用上载文件功能,您可以为工作人员提供文件。
除此之外,还有什么其他方法可以实现这一目标?
2) 如果我们包括所有导入的upload_文件,对于后端中的每个服务调用,它是否会继续上载到工作人员?任务执行后它会被删除吗?是的,有很多方法可以做到这一点,这取决于您部署dask的方式
举几个例子:
所有工作人员都可以访问NFS,因此请将代码文件放在那里,并将其包含在python路径中
worker是通过SSH访问的,因此使用scp将代
当我运行dask dataframe到_csv或df_merge.compute()时,我看到如下所述的错误。当我运行jupyter笔记本时,我看不到同样的情况。这个问题只在linux上出现
df_merge_pd.to_csv(f'output_dask.csv',
encoding='utf-8')
我得到以下错误:
Caught with processing error,
Traceback (most recent call last):
F
我是一个尝试dask延迟的新用户。我想使用delayed自动将函数和代码转换为delayed。但是,我发现delayed.compute并没有在集合中递归计算delayed
from dask import delayed, base
@delayed
def inc(x):
return x + 1
@delayed
def colls(ind):
return [inc(i) for i in xrange(ind)]
data2 = colls(2)
data2.c
我一直在使用dask与jupyter一起做定制的ETL工作(工作起来很有魅力)
我的大多数管道都是过滤器->映射->折叠的->映射,我发现第二个映射操作(在折叠之后)正在按顺序执行(请参见下面的bokeh图)
代码段:
(
分贝
.read_text(路径、存储选项=凭据)
.filter(谓词)
.map(转换)
.foldby(键、副词、首字母、组合词、首字母)
.地图(2)
)
这正常吗?我不明白为什么需要按顺序执行.map(transform2)操作。foldby的输出是一个带有
标签: Dask
dask-distributeddask-delayed
我有一个图像处理图,我想批量处理许多图像。我的图表如下所示:
当我运行图时,bokeh显示如下执行路径:
这会导致我的机器内存不足并崩溃,因为加载映像的输出是兆字节的映像。我希望图形按如下方式运行,因为保存结果非常小,应该可以:
我怎样才能用达斯克做到这一点
似乎在我可能融合中间节点的地方它会很有用。这是最好的方法吗?Dask更喜欢执行可以释放内存的任务,这在您的示例中应该是深度明智的。然而,它也给你并行性;因此,最简单的方法可能是只有一名工人
事实上,图中的线性链可以很好地说明fuse。
标签: Dask
dask-distributeddask-delayed
我有一些代码,比如:
x = delayed(add)(3, 2)
y = delayed(add)(x, x)
我想得到的dask图如下所示:
dsk = {
'x': (add, 3, 2),
'y': (add, 'x', 'x')
}
但我得到的是一个高级图,如下所示:
{'x': {'x': (add, 3, 2)},
'y': {'y': (add,'x','x')}}
我的问题是:有没有一种方法可以轻松地从HighLevelGraph dict转换为常规d
标签: Dask
slurmdask-distributed
因此,我使用Slurm在HPC集群上运行。我已经获得了所需的节点(salloc--nodes=16-t08:00:00--qos=interactive)。有没有一种方法可以在我打开的jupyter笔记本上运行dask并链接所有这些节点,而不必等待dask_jobqueue.SLURMCluster()获取所有新节点
另外,是否有方法为SLURMCluster()例程添加“-qos=interactive”
谢谢
更多信息:
我通过ssh访问hpc前端。
接下来,我通过以下方式获取机器上的节点:
标签: Dask
dask-distributed
我无法在windows上执行“pip安装blosc”。我在windows上进行devop,并让我的工作人员和日程安排与dask docker一起在vm上运行。有人有什么想法吗?看起来dask真的一直想要所有的linux
集团
+------------+-----+
||版本|
+------------+-----+
|客户|无|
|调度程序| 1.9.1|
| tcp://127.0.0.1:38323 | 1.9.1 |
+------------+-----+
venv D:\dev
标签: Dask
dask-distributeddask-delayeddask-dataframe
dask中是否可能有多个客户端?例如,我可以让多个线程运行,每个线程运行一个客户机,这样当一个线程阻塞时,其他线程可以继续运行吗?在这种情况下,每个客户机都有独立的任务图,它们彼此不依赖
作为后续问题,如果这是可能的,那么如何指定在何处运行特定任务?当我执行dd.read_csv,然后调用compute时,我如何知道哪个客户机及其关联的调度程序/工作程序正在执行此操作
dask中是否可能有多个客户端
是的,这是可能的,例如,您可以同时在一个集群上运行计算,在另一个集群上运行其他计算
我可以运行多
标签: Dask
dask-distributed
OSError:尝试连接到时超时'tcp://127.0.0.1:40475'10秒后:尝试在10秒后连接到'tcp://8.56.11:40475'时超时:connect()未及时完成
在运行一些大型操作之后,我想使用。但我想知道,这里真正使用的配置选项是什么
我试过:
os.environ["DASK_DISTRIBUTED__COMM__TIMEOUTS__CONNECT"] = "33s"
os.environ["DASK_DISTRIB
如果我有一个已索引的Dask数据帧
>>> A.divisions
(None, None)
>>> A.npartitions
1
到目前为止,我想设置分区
A.reset_index().set_index("index", divisions=sorted(divisions))
因为A.repartition(divisions=sorted(divisions))抱怨“旧分区和新分区的左侧不同”。有更好的方法吗?从dask.\uuuuu vers
标签: Dask
dask-distributed
我有一个s3存储桶,里面有很多小文件,超过100K,总计约700GB。当从数据包中加载对象并将其持久化时,客户端总是会耗尽内存,非常快地消耗GIG
将作用域限制为几百个对象将允许作业运行,但客户端正在使用大量内存
客户不应该只跟踪期货吗?它们占用了多少内存?马丁·杜兰特在Gitter上回答:
客户端需要在远程文件系统上执行glob,即。,
下载所有文件的完整定义,以便能够
创建每个坏分区。您可能需要构造文件
进入子目录,并将每个子目录制作成单独的包
原始客户端使用glob*,***从S3加载对象
这一概念与hadoop上的数据本地化相同,但我不想使用hdfs
我有三个工人
我想计算一个大的csv文件名,例如mydata.csv
我将mydata.csv拆分为一个小文件(mydata\u part\u 001.csv…mydata\u part\u 100.csv),并存储在每个工人的本地文件夹/数据中
e、 g
worker-01将mydata_part_001.csv-mydata_part_030.csv存储在本地文件夹/数据中
worker-02将mydata_part_031.c
标签: Dask
dask-distributed
我正在使用Dask阵列生成分布在多个节点之间的大型(65k x 65k x 3)3D信号。
在下一步中,我需要使用存储在Dask包中的切片从该阵列中提取数千个瓷砖。我的代码如下所示:
将dask.array导入为da
将dask.bag作为数据库导入
从dask.distributed导入客户端
def拾取块(窗口、信号):
返回np.数组(曲面[窗口])
块上的def计算(信号块):
#在(nxnx3)信号块上做一些相当短的计算。
dask_客户端=客户端(…)
信号数组=生成信号(…)#返回
标签: Dask
dask-distributed
当我试图运行一段代码,将算法应用于我拥有的数据集时,会出现上述错误。在阅读了上的文档之后,我仍然不清楚这个错误会对这个应用程序的结果产生什么影响。这只是影响了代码的速度或效率,还是会影响我的结果?该警告表示您的进程占用的内存比您所说的要多得多。在这种情况下,Dask可能会暂停执行,甚至开始重新启动工作程序
警告还说,Dask本身并没有保留任何数据,因此它无法为这种情况提供太多帮助(比如删除数据)。我的猜测是,您正在使用的一些库占用了大量内存。您可能希望使用内存超过2GB的Dask工作线程。我的一
Spark具有允许用户在Spark数据帧上运行SQL语句的功能。达斯克呢?如果现在不可用,是否正在考虑使用它?Presto/AWS Athena可能是您问题的答案。Presto/AWS Athena可能是您问题的答案。提供了Python中的分布式SQL引擎,可用于拼花文件。它构建在RAPIDS上,因此需要NVIDIA GPU。提供了一个Python分布式SQL引擎,可用于拼花文件。它建立在RAPIDS上,因此需要NVIDIA GPU。还有(免责声明:我是作者),允许对dask数据帧(或可使用da
标签: Dask
dask-distributed
我想合并两个dask数据帧,用列中值填充缺失值,并将合并后的数据帧导出到csv文件。
我有一个问题:我当前的代码无法利用所有8个CPU(每个CPU的20%)
我不确定哪一部分限制了CPU的使用。这是可重复的代码
将numpy导入为np
作为pd进口熊猫
df1=pd.DataFrame(
np.c_u[(np.random.randint(100,size=(10000,1)),np.random.randn(10000,3))],
列=['id'、'a'、'b'、'c'])
df2=pd.Da
标签: Dask
dask-distributed
我正在为我们的数据科学家建立一个工作环境。目前,我们有一个运行Jupyterhub的单节点,安装了Anaconda和Dask。(2个插座,6芯,每个芯2个螺纹,140 gb ram)。当用户创建LocalCluster时,当前默认设置是获取所有可用的内核和内存(据我所知)。当显式地完成时,这是可以的,但是我希望标准的LocalCluster使用的少于这个。因为我们所做的几乎每件事都是
现在,在查看配置时,我没有看到任何关于内存的n个工作线程、每个工作线程的n个线程、n个内核等的配置,在dask.
标签: 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
dask-distributeddask-dataframe
我想定义一组操作并在dask workers上运行它们,捕获可能出现的任何错误,而不必调用compute并将结果提交给客户端
例如,如果我在一个对象列上执行astypeint,这应该会给我一个错误。当我使用client.persist时,这不会返回错误
column = df['string column'].astype(int)
client.persist(column)
但是,client.compute会抛出以下错误:
column = df['string column'].ast
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页