我们正在试用dask_纱线版本0.3.0(带有dask 0.18.2)
因为我使用的是pyarrow0.10.0版
我们正在尝试从hdfs读取csv文件-但是在运行dd.read\u csv('hdfs:///path/to/file.csv)因为它正在尝试使用hdfs3
ImportError:找不到共享库:libhdfs3.so
似乎可以选择使用pyarrow
正确的语法/配置是什么?尝试使用locate-l1libhdfs.so查找文件。在我的例子中,该文件位于/opt/mapr/hado
我启动一个dask客户机,并通过循环发送任务
tasks = []
for order in orderIDs:
tasks.append(client.submit(process,allcars.get_group(order),allorders.get_group(order)))
任务完成后,列表中包含如下数据帧:
[<Future: finished, type: pandas.DataFrame, key: process-93e68764db2995b23271ab
标签: Dask
dask-distributeddask-dataframe
我创建了一个SQLAlchemy SQLAlchemy.sql.selective.Join对象,以便将多个表的连接拉入一个dask数据帧
加入def:
join=TABLE1.join(TABLE2,TABLE1.c.COL1==TABLE2.c.COL2)
连接=连接的外部连接(表3,表1.c.COL1==表3.c.COL3)
连接=连接的外部连接(表4,表1.c.COL1==表4.c.COL4)
join=join.join(表5,表1.c.COL5==表5.c.COL6)
连接=连接的外
标签: Dask
concurrent.futuresdask-distributed
我需要将一个非常大的dask.bag的元素提交到一个非线程安全的商店,即我需要类似的东西
for x in dbag:
store.add(x)
我不能使用compute,因为包太大,无法放入内存。
我需要更像分布式的东西。as_completed,但这对分布式的行李有效。as_completed不起作用。我可能会继续使用普通计算,但会添加一个锁
def commit(x, lock=None):
with lock:
store.add(x)
b.map(c
标签: Dask
dask-distributed
例如,为了沿着整个轴应用以Numpy/Numba编码的IIR滤波器,我需要将asize=(M,N)dask数组从chunks=(m0,n0)重新分块到chunks=(m1,N)和m1
我正在将10个大的固定宽度文件(平均19GB)转换成拼花地板。
我通过堆叠固定宽度的文件来实现这一点
file_list = [files]
stacked_files = open(stacked.txt,'a')
for i in file_list:
f = open(i)
for line in f:
stacked_files.write(line)
f.close()
print(i,(time.time() - file_start
我正在尝试测试此页面上找到的dask命令
我在这行有一个错误:
words=bodies.map(nltk.word\u tokenize).concat()
我猜自文章发表以来,dask API已经发生了变化。如何使用此文件重写它
aws s3 cp s3://reddit comments/2007/RC_2007-10
到目前为止,我已成功运行此代码:
import re
import json
import time
import nltk
import dask
import das
我正在尝试从Minio将JSON-LD读入Dask。管道工作,但字符串作为二进制字符串来自Minio
所以
将oss.open('gleaner/called/repo/file.jsonld','rb')作为f:
打印(f.read())
导致
b'\n{\n "@context": "http://schema.org/",\n "@type": "Dataset",\n ...
我可以简单地用
标签: Dask
dask-distributeddask-delayeddask-dataframe
我有一个现有的Pandas代码库,刚刚开始尝试将其转换为Dask。我仍在试图将注意力集中在Dask数据帧,延迟,以及分布式。通过阅读dask.delayed文档,似乎理想的情况是为我想要做的整个操作集建立一个任务/计算图,包括用户消息的delayed函数,然后在最后的一大块中运行所有计算。这样,在Dask集群执行实际工作时,调用进程就不需要继续运行
然而,我一直面临的问题是,似乎有些情况下这是不可行的,尤其是在Python控制流方面。例如:
df=dd.read\u csv(…)
如果df.is
我有一个形状(25M,79)的数据框,我正试图在它上面并行一个sklearn管道预测
当我只为一个分区运行它时,它会按预期工作:
n_partitions = 1000
ddf = dd.from_pandas(df_x_selection, npartitions=n_partitions)
grid_searcher.best_estimator_.predict_proba(ddf.get_partition(0))
但如果我将其应用于每个分区,那么它将失败:
n_partitions
当我试图从S3打开一个大文件时,我得到了内存错误
import dask.dataframe as dd
df = dd.read_csv('s3://xxxx/test_0001_part_03.gz', storage_options={'anon': True}, compression='gzip', error_bad_lines=False)
df.head()
exception: MemoryError
如何直接从S3打开大型压缩文件?简短回答
您不能对单个大型gzip文件
标签: Dask
dask-distributed
Dask阵列A中的每个块都指向每个Dask阵列B0、B1、。。。Bn。B阵列随后作为zarr保存到磁盘
对于A中的每个块,B中的相应块一起超过了计算节点的内存。内存可以容纳一个B阵列的一个块
如果我只是使用一台计算机来计算B数组,Dask会重新计算a的每个块以使B数组的活动块处于内存限制下吗
我可以向调度程序提示每个任务的内存使用情况吗?从今天起,Dask将不会因为内存原因重新计算任务。它将使用LRU策略将多余的数据存储到磁盘(假设您使用的是dask.distributed scheduler)
在运行Dask工作线程时,我注意到有一些额外的线程超出了我的预期。一个Dask工作线程应该运行多少个线程?它们在做什么?Dask工作线程有以下线程:
要在其中运行任务的线程池。这通常介于1和计算机上的逻辑核数之间
一个管理线程,用于管理事件循环、通过(非阻塞)套接字的通信、响应快速查询、将任务分配到工作线程等
两个线程,用于在通信期间对消息进行可选压缩和(反)序列化
一个线程用于监视和分析上述两项
此外,默认情况下还有一个额外的保姆流程来监视工人。此进程有两个自己的线程用于管理
这些是截至2
标签: Dask
databricksdask-distributedazure-databricks
我想在数据磁盘上使用Dask。这应该是可能的(我看不出为什么不可能)。如果我导入它,会发生以下两种情况之一:要么我得到一个ImportError,但是当我安装distributed来解决这个问题时,DataBricks只会说Cancelled,而不会抛出任何错误。我想我们没有听说有人在DataBricks下使用Dask,但只要它只是python,就可能实现
Dask的默认调度程序是线程,这是最有可能工作的。在这种情况下,您甚至不需要安装distributed
对于已取消的错误,听起来您使用的是分
标签: Dask
dask-distributeddask-delayed
在调试问题的过程中,我发现很难准确地解释哪些任务导致了问题。我在延迟任务中成功地使用了“dask_key_name”kwarg,为延迟任务的密钥分配了一个可读的名称(基于此处的文档:)。我尝试了以下操作,希望它能对read_parquet任务执行相同的操作,但它似乎仍然使用散列值来创建键(例如,('read-parquet-ed9e6c4c474e851e176e7eafb8753490',5))
我是否做错了什么,或者是否有其他方法来命名dask数据帧任务?今天无法像这样重命名数据帧任务。我以
我在HPC上设置了一个集群,我已经定义了集群,并验证了我有很多工人
来自dask.distributed import客户端
客户端=客户端(群集)
我定义了一个分类器,需要适合大数据集82200256
base=RandomForestClassifier(最大深度=10,n\u估计量=100,类权重='balanced',n\u作业=-1,标准='熵')
clf_binary=AdaBoostClassifier(基估计量=base,n估计量=8,学习率=1)
在集群上运行clf\u b
标签: Dask
dask-distributeddask-jobqueue
我正在运行一个通过存储网络写入大型文件的进程。我可以使用一个简单的循环来运行这个过程,并且没有失败。我可以在非高峰时间使用分布式和jobqueue运行,并且没有工人出现故障。然而,当我在高峰时间运行相同的命令时,我会让工人自杀
我对这项任务有足够的记忆力,而且有大量的工作人员,所以我没有排队
错误日志通常有一堆超过垃圾收集限制的日志,随后有一个工作进程被信号9杀死。信号9表明进程违反了某些系统限制,而不是Dask决定让该工作进程死亡。由于这只发生在繁忙时间的高磁盘IO上,因此我确实同意网络存储可
标签: Dask
slurmdask-distributed
我已经通过slurm(使用dask mpi)在slurm管理的集群上的多个核心上启动了一个dask.distributed集群。所有进程似乎都已正常启动(slurm日志文件中看起来正常的stdout),但当我尝试使用client=client(scheduler\u file='/path/to/my/scheduler.json')从python中连接客户机时,我收到一个超时错误,如下所示:
distributed.utils - ERROR - Timed out trying to con
标签: Dask
dask-distributed
我有一个处理LocalCluster的管道:
from distributed import Client
client = Client()
list_of_queries = [...] # say 1_000 queries
loaded_data = client.map(sql_data_loader, list_of_queries)
processed_data = client.map(data_processor, loaded_data)
writer_result
我正在处理大的(20-100GB)制表符分隔的文本文件,我可以使用index\u col=False选项将这些文件正确导入pandas。Dask数据帧不支持index\u col参数。我能够解决这个问题,但我很好奇是否有更聪明的方法来处理这个问题。如果没有index_col=False选项,pandas和dask读取向右移动一次的列,即Col1与数据col2对齐,等等。我认为这是因为数据行有尾随选项卡,但标题没有
这是一个文件示例-^I是一个选项卡,$是一行结尾
Col1^ICol2^ICol3
我正在SLURM管理的群集上运行Dask
dask-ssh --nprocs 2 --nthreads 1 --scheduler-port 8786 --log-directory `pwd` --hostfile hostfile.$JOBID &
sleep 10
# We need to tell dask Client (inside python) where the scheduler is running
scheduler="`hostname`:8786"
echo
我已经看到,在运行to_parquet函数时,列对象的类型存在一些问题。我正在运行dask版本15.1
我已使用显式转换了我的列,这有助于某些列,但不是所有列。
我得到以下错误-TypeError:内置操作的参数类型错误
添加object\u encoding='utf-8参数后,我得到以下错误-TypeError:预期的字节列表
调试此问题的最佳方法是什么?
顺便说一句,我的数据集有希伯来文字符
Thx正确的拼写是object\u encoding='utf8'
请注意,对象编码通常是每列设置
我们在团队中使用Dask来运行所有工作流。我们目前自动运行工作流,如下所示:
我们运行查询以侦听特定SQL表中特定列内的更改
当检测到表时,我们导入dask延迟图并运行它
上面的工作正常,但它需要我们查询数据库并侦听更改。在其他情况下,我们只需要告诉调度程序运行工作流。在这种情况下,我们希望将任务添加到队列中,并从那里运行它
我想使用一个简单的sql表,然后有一个循环来检查这个表是否有任何新的工作。一旦新工作可用,它将提交到dask.distributed
然而,这意味着我们必须每30秒或更
标签: Dask
dask-distributeddask-jobqueue
我可以访问运行PBS Pro的群集,并希望在headnode上保持PBSCluster实例的运行。我当前的(显然已损坏)脚本是:
import dask_jobqueue
from paths import get_temp_dir
def main():
temp_dir = get_temp_dir()
scheduler_options = {'scheduler_file': temp_dir / 'scheduler.json'}
cluster = da
使用dask,我想将图像数组分解为重叠的块,执行计算(同时对所有块执行),然后将结果缝合回图像中
以下方法可行,但感觉笨拙:
from dask import array as da
from dask.array import ghost
import numpy as np
test_data = np.random.random((50, 50))
x = da.from_array(test_data, chunks=(10, 10))
depth = {0: 1, 1: 1}
标签: Dask
dask-distributed
我想从命令行执行与Client(LocalCluster())等效的操作
当与Jupyter笔记本上的分布式系统交互时,我经常重启内核,每次启动一个新的LocalCluster,并刷新我的bokeh网页
我更希望有一个进程在后台运行,我可以连接到它,这可能吗 此处的相关文档页面为
在一个终端中,写入以下内容:
$ dask-scheduler
$ dask-worker localhost:8786
在另一个终端中,写入以下内容:
$ dask-scheduler
$ dask-worke
我需要找到数组中每个元素的频率,同时保留有关数组形状的信息。这是因为我以后需要对它进行迭代
我试了一个也试了一个。它适用于numpy,但在dask中似乎不起作用,因为dask阵列在大多数操作中需要知道其大小
将dask.array导入为da
arr=da.from_数组([1,1,1,2,3,4,4])
唯一,计数=da.unique(arr,返回计数=True)
打印(唯一)
#dask阵列
打印(计数)
#dask阵列
我正在寻找类似的东西:
将dask.array导入为da
arr=da
标签: Dask
dask-distributed
当应用workers lifetime选项并重新启动时,看起来如果worker正在运行作业,它仍然会继续重新启动
每60秒使用1个工作进程应用一次生存期重启选项,并运行一个仅休眠两倍时间的作业。即使工作进程正在运行作业,重新启动仍会发生
为了优雅地重新启动,我认为工作者会等待长时间运行的任务/作业完成,空闲时会重新启动自己。这样,即使您一直在运行任务,它也不会被自动重新启动选项中断。这听起来像是您想要提出功能请求。我建议您在github上提出一个问题。已创建github请求-听起来您想提出一个功
标签: Dask
dask-distributed
我正在使用一个dask.distributed集群,我想将一个大数据帧保存到S3的单个CSV文件中,如果可能的话,保持分区的顺序(默认情况下,将数据帧写入多个文件,每个分区一个)。此外,此文件存储操作还应作为延迟/延迟任务执行(应在集群工作程序上执行)
我能想到的第一个解决方案是将分区存储在临时S3位置,然后在延迟函数中使用S3 multipart upload将这些文件合并/上传到一起。临时存储是这里的一个缺点
可以使用dataframe.to_delayed()完成吗?上载需要由单个延迟函数
我在一个大型3D数据阵列(气象数据:纬度、经度、时间)上使用xarray.interp,根据离散映射函数f将值(风速)映射到新值。
插值方法似乎只使用一个核进行计算,这使得该过程效率低下。我不知道如何使xarray使用多个内核来完成此任务
我确实通过htop和dask仪表板为xarray.interp监控了计算。
htop仅显示要使用的一个核心,仪表板不显示任何工人的任何活动。我能观察到的唯一dask活动是从磁盘加载netcdf数据文件。如果使用.load()预加载数据,则此dask活动将消失
正在获取错误
MemoryError:无法分配形状为(15145488917,)且数据类型为int64的数组
…尝试以下合并时
master = dd.merge(df1, df2)
以前的代码是
df1.count().compute()
…具有输出
den 312019
num 312019
dtype: int64
den 970531
num 970531
dtype: int64
……还有
df2.count().compute()
…具有输出
den
标签: Dask
parquetfastparquet
我已经从位于同一文件夹中的多个拼花文件创建了一个拼花文件。每个文件对应一个分区
拼花地板文件是使用Python concurrent.futures在不同的进程中创建的。下面是我在一个进程中运行的代码示例:
`df`是一个标准的熊猫数据帧,具有
22列不同类型,最多100e3行。
设置索引
df.set_indexcid,原地=真
写入单个文件
fastparquet.writefpath,df,compression='snappy,file\u scheme='simple
df最多包含10
在Centos 7上安装了带有“pip安装dask[complete]分布式--升级”Python 2.7的dask。
运行:
获取:
Process-1:回溯(最近一次调用最后一次):文件
“/usr/lib64/python2.7/multiprocessing/process.py”,第258行,在
_bootstrap self.run()文件“/usr/lib64/python2.7/multiprocessing/process.py”,运行中的第114行
self.\u targe
标签: Dask
dask-distributeddask-delayeddask-dataframe
我正在尝试从SQL连接加载Dask数据帧。根据,必须传入一个索引列。如果可能没有好的列作为索引,我该怎么办
这是合适的替代品吗
# Break SQL Query into chunks
chunks = []
num_chunks = math.ceil(num_records / chunk_size)
# Run query for each chunk on Dask workers
for i in range(num_chunks):
query = 'SELECT * F
我有下面的任务图
def getdocs():
return [doc1,doc2]
def tosents(doc):
return doc.split(".") # Except doc is a list of docs
def towords(sent):
return sent.split(" ")
graph = {
"documents": (getdocs,),
"sentences": (tosents,"documents"
我正在尝试获取一个数组并使用自定义函数对其重新采样。从本帖:
这是一个示例示例
我有一个数据集:
<xarray.Dataset>
Dimensions: (lat: 100, lon: 130, time: 7305)
Coordinates:
* lon (lon) float32 -99.375 -99.291664 -99.208336 ... -88.708336 -88.625
* lat (lat) float32 49.78038 49.
标签: Dask
hpcslurmdask-distributed
我试图使用dask.distributed.SLURMCluster将批处理作业提交给超级计算集群上的SLURM作业调度器。作业都按预期提交,但在运行1分钟后引发错误:asyncio.exceptions.TimeoutError:Nanny在60秒内启动失败。我如何让保姆联系上
完整跟踪:
distributed.nanny - INFO - Start Nanny at: 'tcp://206.76.203.125:38324'
distributed.dashboard.p
教程页面要求我们在这里提问
在教程01\u dask.delayed中,有以下代码:
并行增量
把…准备好
从时间导入睡眠
def公司(x):
睡眠(1)
返回x+1
def添加(x,y):
睡眠(1)
返回x+y
数据=[1,2,3,4,5,6,7,8]
计算
results=[]
对于数据中的x:
y=延迟(包括)(x)
结果。追加(y)
总计=延迟(总和)(结果)
打印(“计算前:,总计)#让我们看看总计是什么类型的东西
结果=总计。计算()
打印(“计算后:,结果)#计算后
此代码需
标签: Dask
dask-distributed
我遇到了一个问题,如果在短时间内提交了大量任务,dask调度程序将因内存错误而被终止(尽管工作人员仍在运行)
如果可以获得集群上的当前任务数,那么就可以很容易地控制提交到集群的并发任务数
注意:任务正在从多个客户端提交到同一个调度程序。您可以使用该方法在调度程序上运行任意Python函数
用这个你们可以看到你们喜欢的任何一个人
client.run_on_scheduler(lambda dask_scheduler: dask_scheduler.tasks)
请注意,调度器可以处理数百万个
当我在dask中运行df.loc[mylabels]时,我会收到一条警告,其中链接到
警告从0.21.0开始,使用带有一个或多个缺少标签的列表的.loc或[],不推荐使用.reindex
这一页还说:
或者,如果您只想选择有效的键,那么下面是惯用且高效的方法:;保证保留选择的数据类型
Dask索引没有交集方法。
那么,在dask中实现上述效果的推荐方法是什么
df.loc[mylabels]的问题是,mylabels包含不在df.index中的项。现在看来,您应该继续调用df.loc[label
标签: Dask
hdf5dask-distributed
我在一台16核64GB RAM的机器上运行,希望将dask与LocalCluster结合使用,因为需要分析工具进行优化
如前所述,我设置了LocalCluster。但它仍然给了我以下错误:
Traceback (most recent call last):
File "/data/myusername/anaconda3/lib/python3.7/site-packages/distributed/protocol/pickle.py", line 38, in dumps
re
我有一个使用dask时获得的Delayed对象列表。persist:
[Delayed('get_atomic_fingerprint-aca9b774-cfcc-4160-86ae-a24765df24ad')
Delayed('get_atomic_fingerprint-c8eaf312-ff5c-4582-83b9-eb2b00e715b2')
Delayed('get_atomic_fingerprint-839365ce-8568-44bb-9b3c-ecb017811686')
我试图计算由多个列定义的分组的频率,我希望将该频率输出到原始dask数据帧
比如说。我想要这张桌子
ID PayMethod Day
看起来像这样:
ID PayMethod Day ID_PayMethod_Count ID_PayMethod_Day_Count
Groupby+transform为我们提供了一个Groupby对象,它为我们提供了与原始数据帧相同的行数
在熊猫中,我可以做到以下几点
df['ID_PayMethod_Count
标签: Dask
dask-distributed
我正在寻找在集群上并行处理以下问题的最佳方法。我有几个档案
文件夹/file001.csv
文件夹/file002.csv
:
文件夹/file100.csv
它们与我要用于groupby的键不相交,也就是说,如果一组键位于file1.csv中,则这些键中的任何一个键在任何其他文件中都有一个项
一边我可以跑
df = dd.read_csv("folder/*")
df.groupby("key").apply(f, meta=meta).compute(scheduler='process
不可复制,但有人能解释为什么索引后.head()调用会大大减慢吗
import dask.dataframe as dd
df = dd.read_parquet("Filepath")
df.head() # takes 10 seconds
df = df.set_index('id')
df.head() # takes 10 minutes +
如,set_index中所述,根据新索引对数据进行排序,以便沿着该索引的分区将数据拆分为其逻辑分区。排序需要额外的时间,但一旦执行,将使该
如何使用dask并行运行具有不同列维度的SQL查询?以下是我的尝试:
from dask.delayed import delayed
from dask.diagnostics import ProgressBar
import dask
ProgressBar().register()
con = cx_Oracle.connect(user="BLAH",password="BLAH",dsn = "BLAH")
@delayed
def loadsql(sql):
retur
标签: Dask
python-xarraydask-delayed
我有两个数据集(称为satdata和atmosdata)。大气数据在纬度和经度上均匀网格化。Atmosdata具有维度(纬度:713,级别:37,经度:1440,时间:72),总大小为12GB。大气数据有几个变量,如温度、湿度等。湿度的形状为(时间、水平、纬度、经度)
Satdata包含卫星观测数据,其尺寸为(跨轨道:90,通道:3,时间:32195),90*3*32195=8692650个数据点。交叉轨道是指卫星FOV交叉轨道位置。Satdata在纬度/经度上不是均匀网格化的。例如,satda
标签: Dask
dask-distributed
我正在使用Dask分配一些函数的计算。我的总体布局如下所示:
从dask.distributed导入客户端LocalCluster,完成
cluster=LocalCluster(processs=config.use\u dask\u local\u进程,
n_工人=1,
每个工作线程数=1,
)
客户端=客户端(群集)
cluster.scale(config.dask\u local\u worker\u实例)
工作期货=[]
#为每个小组做工作
对于组中的组:
fcast_future
版本:
dask 2.15.0 py_0
dask核心2.15.0 py_0
geopandas 0.6.1 py_0
熊猫1.0.3 py37h47e9c7a_0
熊猫数据阅读器0.8.1 pypi_0
pyarrow 0.15.1 py37h47e9c7a_0
我注意到错误报告#2597关于:
它是在2019年9月关闭的,从那以后解决了吗?这个问题似乎是用户的问题--usecols必须是类似列表的问题--usecols必须是类似列表的问题--usecols必须是类似列表的问题。事实上,将参
标签: Dask
dask-distributed
使用分布式客户端提交计算将生成一个未来对象。有没有办法找出这个未来对象的优先级属性
上一页 1 2 3 4 5 6 ...
下一页 最后一页 共 14 页