使用dask和pyarrow从hdfs读取csv文件

我们正在试用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期货?

我启动一个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使用SQLAlchemy join作为Dask.dataframe.read_sql-index_col can';不要让熊猫和达斯克都高兴

我创建了一个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包上按顺序迭代

我需要将一个非常大的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.dataframe.to_拼花地板制作超大文件

我正在将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 concat

我正在尝试测试此页面上找到的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

Dask 为控制流“计算”还是构建一个完全“延迟”的任务图更好?

我有一个现有的Pandas代码库,刚刚开始尝试将其转换为Dask。我仍在试图将注意力集中在Dask数据帧,延迟,以及分布式。通过阅读dask.delayed文档,似乎理想的情况是为我想要做的整个操作集建立一个任务/计算图,包括用户消息的delayed函数,然后在最后的一大块中运行所有计算。这样,在Dask集群执行实际工作时,调用进程就不需要继续运行 然而,我一直面临的问题是,似乎有些情况下这是不可行的,尤其是在Python控制流方面。例如: df=dd.read\u csv(…) 如果df.is

Dask 用` map_分区并行预测`

我有一个形状(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

Dask 从S3打开大文件

当我试图从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阵列A中的每个块都指向每个Dask阵列B0、B1、。。。Bn。B阵列随后作为zarr保存到磁盘 对于A中的每个块,B中的相应块一起超过了计算节点的内存。内存可以容纳一个B阵列的一个块 如果我只是使用一台计算机来计算B数组,Dask会重新计算a的每个块以使B数组的活动块处于内存限制下吗 我可以向调度程序提示每个任务的内存使用情况吗?从今天起,Dask将不会因为内存原因重新计算任务。它将使用LRU策略将多余的数据存储到磁盘(假设您使用的是dask.distributed scheduler)

Dask工作线程有哪些活动线程?

在运行Dask工作线程时,我注意到有一些额外的线程超出了我的预期。一个Dask工作线程应该运行多少个线程?它们在做什么?Dask工作线程有以下线程: 要在其中运行任务的线程池。这通常介于1和计算机上的逻辑核数之间 一个管理线程,用于管理事件循环、通过(非阻塞)套接字的通信、响应快速查询、将任务分配到工作线程等 两个线程,用于在通信期间对消息进行可选压缩和(反)序列化 一个线程用于监视和分析上述两项 此外,默认情况下还有一个额外的保姆流程来监视工人。此进程有两个自己的线程用于管理 这些是截至2

如何在数据磁盘上使用Dask

我想在数据磁盘上使用Dask。这应该是可能的(我看不出为什么不可能)。如果我导入它,会发生以下两种情况之一:要么我得到一个ImportError,但是当我安装distributed来解决这个问题时,DataBricks只会说Cancelled,而不会抛出任何错误。我想我们没有听说有人在DataBricks下使用Dask,但只要它只是python,就可能实现 Dask的默认调度程序是线程,这是最有可能工作的。在这种情况下,您甚至不需要安装distributed 对于已取消的错误,听起来您使用的是分

Dask-是否可以将Dask_密钥_名称分配给Dask数据帧任务?

在调试问题的过程中,我发现很难准确地解释哪些任务导致了问题。我在延迟任务中成功地使用了“dask_key_name”kwarg,为延迟任务的密钥分配了一个可读的名称(基于此处的文档:)。我尝试了以下操作,希望它能对read_parquet任务执行相同的操作,但它似乎仍然使用散列值来创建键(例如,('read-parquet-ed9e6c4c474e851e176e7eafb8753490',5)) 我是否做错了什么,或者是否有其他方法来命名dask数据帧任务?今天无法像这样重命名数据帧任务。我以

如何使用dask.distributed来适应模型

我在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:存储网络速度是否会导致工人死亡

我正在运行一个通过存储网络写入大型文件的进程。我可以使用一个简单的循环来运行这个过程,并且没有失败。我可以在非高峰时间使用分布式和jobqueue运行,并且没有工人出现故障。然而,当我在高峰时间运行相同的命令时,我会让工人自杀 我对这项任务有足够的记忆力,而且有大量的工作人员,所以我没有排队 错误日志通常有一堆超过垃圾收集限制的日志,随后有一个工作进程被信号9杀死。信号9表明进程违反了某些系统限制,而不是Dask决定让该工作进程死亡。由于这只发生在繁忙时间的高磁盘IO上,因此我确实同意网络存储可

尝试连接slurm托管群集上的dask.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按顺序执行任务

我有一个处理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

Dask 数据帧索引

我正在处理大的(20-100GB)制表符分隔的文本文件,我可以使用index\u col=False选项将这些文件正确导入pandas。Dask数据帧不支持index\u col参数。我能够解决这个问题,但我很好奇是否有更聪明的方法来处理这个问题。如果没有index_col=False选项,pandas和dask读取向右移动一次的列,即Col1与数据col2对齐,等等。我认为这是因为数据行有尾随选项卡,但标题没有 这是一个文件示例-^I是一个选项卡,$是一行结尾 Col1^ICol2^ICol3

从客户端接口停止dask ssh创建的计划程序

我正在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

调试dask.dataframe.to_拼花地板的正确原因

我已经看到,在运行to_parquet函数时,列对象的类型存在一些问题。我正在运行dask版本15.1 我已使用显式转换了我的列,这有助于某些列,但不是所有列。 我得到以下错误-TypeError:内置操作的参数类型错误 添加object\u encoding='utf-8参数后,我得到以下错误-TypeError:预期的字节列表 调试此问题的最佳方法是什么? 顺便说一句,我的数据集有希伯来文字符 Thx正确的拼写是object\u encoding='utf8' 请注意,对象编码通常是每列设置

从队列向dask客户端提交工作的最佳方式是什么?

我们在团队中使用Dask来运行所有工作流。我们目前自动运行工作流,如下所示: 我们运行查询以侦听特定SQL表中特定列内的更改 当检测到表时,我们导入dask延迟图并运行它 上面的工作正常,但它需要我们查询数据库并侦听更改。在其他情况下,我们只需要告诉调度程序运行工作流。在这种情况下,我们希望将任务添加到队列中,并从那里运行它 我想使用一个简单的sql表,然后有一个循环来检查这个表是否有任何新的工作。一旦新工作可用,它将提交到dask.distributed 然而,这意味着我们必须每30秒或更

Dask 如何保持PBSCluster运行?

我可以访问运行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访问重影块

使用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分布式本地集群?

我想从命令行执行与Client(LocalCluster())等效的操作 当与Jupyter笔记本上的分布式系统交互时,我经常重启内核,每次启动一个新的LocalCluster,并刷新我的bokeh网页 我更希望有一个进程在后台运行,我可以连接到它,这可能吗 此处的相关文档页面为 在一个终端中,写入以下内容: $ dask-scheduler $ dask-worker localhost:8786 在另一个终端中,写入以下内容: $ dask-scheduler $ dask-worke

在不丢失阵列形状信息的情况下查找dask阵列中元素的频率?

我需要找到数组中每个元素的频率,同时保留有关数组形状的信息。这是因为我以后需要对它进行迭代 我试了一个也试了一个。它适用于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 Workers终身选项不等待作业完成

当应用workers lifetime选项并重新启动时,看起来如果worker正在运行作业,它仍然会继续重新启动 每60秒使用1个工作进程应用一次生存期重启选项,并运行一个仅休眠两倍时间的作业。即使工作进程正在运行作业,重新启动仍会发生 为了优雅地重新启动,我认为工作者会等待长时间运行的任务/作业完成,空闲时会重新启动自己。这样,即使您一直在运行任务,它也不会被自动重新启动选项中断。这听起来像是您想要提出功能请求。我建议您在github上提出一个问题。已创建github请求-听起来您想提出一个功

将大型dask数据帧写入单个S3 CSV文件

我正在使用一个dask.distributed集群,我想将一个大数据帧保存到S3的单个CSV文件中,如果可能的话,保持分区的顺序(默认情况下,将数据帧写入多个文件,每个分区一个)。此外,此文件存储操作还应作为延迟/延迟任务执行(应在集群工作程序上执行) 我能想到的第一个解决方案是将分区存储在临时S3位置,然后在延迟函数中使用S3 multipart upload将这些文件合并/上传到一起。临时存储是这里的一个缺点 可以使用dataframe.to_delayed()完成吗?上载需要由单个延迟函数

Dask 如何使xarray.interp()并行工作?

我在一个大型3D数据阵列(气象数据:纬度、经度、时间)上使用xarray.interp,根据离散映射函数f将值(风速)映射到新值。 插值方法似乎只使用一个核进行计算,这使得该过程效率低下。我不知道如何使xarray使用多个内核来完成此任务 我确实通过htop和dask仪表板为xarray.interp监控了计算。 htop仅显示要使用的一个核心,仪表板不显示任何工人的任何活动。我能观察到的唯一dask活动是从磁盘加载netcdf数据文件。如果使用.load()预加载数据,则此dask活动将消失

DASK-MemoryError:无法分配形状和数据类型为int64的数组

正在获取错误 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中计算索引拼花地板文件上的形状如此缓慢?

我已经从位于同一文件夹中的多个拼花文件创建了一个拼花文件。每个文件对应一个分区 拼花地板文件是使用Python concurrent.futures在不同的进程中创建的。下面是我在一个进程中运行的代码示例: `df`是一个标准的熊猫数据帧,具有 22列不同类型,最多100e3行。 设置索引 df.set_indexcid,原地=真 写入单个文件 fastparquet.writefpath,df,compression='snappy,file\u scheme='simple df最多包含10

Dask 达斯克:请';pip安装zict&x27;在Centos 7上使用Python 2.7

在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-从SQL加载数据帧而不指定索引列

我正在尝试从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

如何在Dask任务图中迭代集合

我有下面的任务图 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"

Dask 将xarray与自定义函数一起使用并重新采样

我正在尝试获取一个数组并使用自定义函数对其重新采样。从本帖: 这是一个示例示例 我有一个数据集: <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 分布式SLURM群集保姆超时

我试图使用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

Dask教程:解释教程中意外的结果

教程页面要求我们在这里提问 在教程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 api来获取dask集群中当前的任务数

我遇到了一个问题,如果在短时间内提交了大量任务,dask调度程序将因内存错误而被终止(尽管工作人员仍在运行) 如果可以获得集群上的当前任务数,那么就可以很容易地控制提交到集群的并发任务数 注意:任务正在从多个客户端提交到同一个调度程序。您可以使用该方法在调度程序上运行任意Python函数 用这个你们可以看到你们喜欢的任何一个人 client.run_on_scheduler(lambda dask_scheduler: dask_scheduler.tasks) 请注意,调度器可以处理数百万个

Dask 等同于df.loc[df.index.intesection(mylabels)]

当我在dask中运行df.loc[mylabels]时,我会收到一条警告,其中链接到 警告从0.21.0开始,使用带有一个或多个缺少标签的列表的.loc或[],不推荐使用.reindex 这一页还说: 或者,如果您只想选择有效的键,那么下面是惯用且高效的方法:;保证保留选择的数据类型 Dask索引没有交集方法。 那么,在dask中实现上述效果的推荐方法是什么 df.loc[mylabels]的问题是,mylabels包含不在df.index中的项。现在看来,您应该继续调用df.loc[label

Dask分布式本地群集失败,返回“0”;类型错误:can';t pickle“U线程.”U局部对象“;将dask.array.store用于hdf5文件时

我在一台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数组

我有一个使用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分组变换

我试图计算由多个列定义的分组的频率,我希望将该频率输出到原始dask数据帧 比如说。我想要这张桌子 ID PayMethod Day 看起来像这样: ID PayMethod Day ID_PayMethod_Count ID_PayMethod_Day_Count Groupby+transform为我们提供了一个Groupby对象,它为我们提供了与原始数据帧相同的行数 在熊猫中,我可以做到以下几点 df['ID_PayMethod_Count

集群dask的并行化

我正在寻找在集群上并行处理以下问题的最佳方法。我有几个档案 文件夹/file001.csv 文件夹/file002.csv : 文件夹/file100.csv 它们与我要用于groupby的键不相交,也就是说,如果一组键位于file1.csv中,则这些键中的任何一个键在任何其他文件中都有一个项 一边我可以跑 df = dd.read_csv("folder/*") df.groupby("key").apply(f, meta=meta).compute(scheduler='process

Dask DataFrame.head()在索引后速度非常慢

不可复制,但有人能解释为什么索引后.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查询

如何使用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 延迟慢:如何在两个数据集之间快速选择/插值

我有两个数据集(称为satdata和atmosdata)。大气数据在纬度和经度上均匀网格化。Atmosdata具有维度(纬度:713,级别:37,经度:1440,时间:72),总大小为12GB。大气数据有几个变量,如温度、湿度等。湿度的形状为(时间、水平、纬度、经度) Satdata包含卫星观测数据,其尺寸为(跨轨道:90,通道:3,时间:32195),90*3*32195=8692650个数据点。交叉轨道是指卫星FOV交叉轨道位置。Satdata在纬度/经度上不是均匀网格化的。例如,satda

触发Dask工作进程以释放内存

我正在使用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:distributed.protocol.core-严重-序列化失败

版本: 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必须是类似列表的问题。事实上,将参

上一页   1   2   3   4   5    6  ... 下一页 最后一页 共 14 页