使用变量设置 Dask Worker

2023-12-03

我想在工作人员加载时分发一个更大的对象(或从磁盘加载)并将其放入全局变量(例如calib_data)。这对 Dask 工作人员有用吗?


好像是客户端方法注册工人回调在这种情况下可以做你想做的事。你仍然需要某处放置你的变量,因为在 python 中没有真正的全局范围。例如,某个地方可以是导入模块的任何属性,然后任何工作人员都可以访问该属性。您还可以将其添加为工作实例本身的属性,但我认为没有明显的理由要这样做。

一种有效的方法是劫持随机选择的内置模块;但我并不特别推荐这个(见下文)

def attach_var(name, value):
    import re
    re.__setattr__(name, value)

client.run(attach_var, 'x', 1)

def use_var():
    # any function running on a worker can do this, via delayed or
    # whatever method you pass with
    import re
    return re.x

client.run(use_var)

不过,在继续之前,您是否已经考虑过delayed(calib_data) or scatter,这会将您的变量复制到需要的位置,例如,

futures = client.scatter(calib_data, broadcast=True)

或者确实使用普通的方式将数据加载到工作人员中delayed语义学

dcalib = dask.delayed(load_calib_data)()
work = dask.delayed(process_stuff)(dataset1, dcalib)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用变量设置 Dask Worker 的相关文章

  • Pandas 数据帧太大而无法附加到 dask 数据帧?

    我不确定我在这里缺少什么 我认为 dask 可以解决我的内存问题 我有 100 多个以 pickle 格式保存的 pandas 数据帧 我希望将它们全部放在同一个数据框中 但不断遇到内存问题 我已经增加了 jupyter 中的内存缓冲区 看
  • 使用 Dask 导入大型 CSV 文件

    我正在使用 Dask 导入一个非常大的 csv 文件 680GB 但是 输出不是我所期望的 我的目标是仅选择一些列 6 50 并可能过滤它们 我不确定 因为似乎没有数据 import dask dataframe as dd file pa
  • 有没有办法获得 dask 中每组最大的项目?

    我有以下数据集 location category percent A 5 100 0 B 3 100 0 C 2 50 0 4 13 0 D 2 75 0 3 59 0 4 13 0 5 4 0 我正在尝试获取数据框中按位置分组的最大类别
  • 演员和幕后工作者

    client Client 127 0 0 1 8786 direct to workers True future1 client submit Counter workers ninja actor True counter1 futu
  • 使用 Python 在 Parquet 中嵌套数据

    我有一个文件 每行一个 JSON 这是一个示例 product id abcdef price 19 99 specs voltage 110v color white user Daniel Severo 我想创建一个包含以下列的镶木地板
  • 如何将 dask 数据帧保存到与 dask 调度程序/工作人员相同的机器上的镶木地板?

    我试图通过 Dask Dataframe 保存到与 dask 调度程序 工作人员所在的同一台机器上的镶木地板 然而 我在这期间遇到了麻烦 我的 Dask 设置 我的 python 脚本在本地计算机 笔记本电脑 16 GB RAM 上执行 但
  • 如何使用 dask 和特定 AWS 配置文件从 s3 读取镶木地板文件

    如何使用 s3 读取 parquet 文件dask以及特定的 AWS 配置文件 存储在凭证文件中 达斯克用途s3fs它使用boto 这是我尝试过的 gt gt gt import os gt gt gt import s3fs gt gt
  • 将 SQL 查询读入 Dask DataFrame

    我正在尝试创建一个函数 该函数将 SQL SELECT 查询作为参数 并使用 dask 将其结果读入 dask DataFramedask read sql query功能 我是 dask 和 SQLAlchemy 的新手 我首先尝试了这个
  • Dask 分布式工作线程在运行许多任务时总是会泄漏内存

    有哪些策略可以解决或调试这个问题 distribution worker 警告 内存使用率很高 但工作线程没有数据可存储到磁盘 也许其他进程正在泄漏内存 进程内存 26 17 GB 工作内存限制 32 66 GB 基本上 我只是在一台机器上
  • 在 Dask 数组上使用 scikit-learn cosine_similarity - python

    我有 Dask 来处理无法放入内存的大量向量 并使用 scikit learn cosine similarity 来计算这些向量之间的余弦相似度 即 import dask array as da from sklearn metrics
  • Dask 中的二维布尔索引

    我想使用 Dask 进行二维索引 这是该任务的示例 array1 xr DataArray 1 3 4 7 6 4 15 2 chunk 2 array2 xr DataArray 1 3 4 9 1 4 3 2 chunk 2 array
  • 无法转置 dask.dataframe - 出现未绑定本地错误

    我正在尝试转置一个非常大的数据框 由于文件的大小 我使用了 Dask 并搜索了如何转置 dask 数据帧 import pandas as pd import numpy as np import dask dataframe as dd
  • 使用 dask 加载大型压缩数据集

    我正在尝试将一个大型压缩数据集加载到 python 中 其结构如下 year zip year month 很多 csv 文件 到目前为止 我已经使用 ZipFile 库迭代每个 CSV 文件并使用 pandas 加载它们 zf ZipFi
  • 使用 dask 合并大型数据集

    我有两个数据集 一个约为 45GB 包含 1 年的日常交易 第二个数据集为 3 6GB 包含客户 ID 和详细信息 我想将两者合并到一个公共列上以创建一个数据集 这超出了服务器的内存 因为每个客户可能有多个交易 我正在开发一个具有 16 个
  • 重塑 dask 数组(从 dask 数据框列获得)

    我是 dask 新手 正在尝试弄清楚如何重塑从 dask 数据帧的单列获得的 dask 数组 但遇到了错误 想知道是否有人知道修复方法 无需强制计算 谢谢 Example import pandas as pd import numpy a
  • 数据类型映射参数中的键只能使用列名

    我已经使用 dask read sql table 从 Oracle 数据库成功引入了一张表 但是 当我尝试引入另一个表时 出现此错误KeyError 只有列名可以用作数据类型映射参数中的键 我已经检查了我的连接字符串和架构 所有这些都很好
  • 如何加快大型 xlsx 文件的导入速度?

    我想要处理一个 200MB 的大型 Excel xlsx 文件 包含 15 个工作表和 100 万行 每行 5 列 并根据数据创建 pandas 数据框 Excel 文件的导入速度非常慢 最多 10 分钟 不幸的是 Excel 导入文件格式
  • dask 数据帧的 iloc 相当于什么?

    我遇到一种情况 我需要按位置索引 dask 数据帧 我看到没有 iloc方法可用 还有其他选择吗 或者我是否需要使用基于标签的索引 例如 我想 import dask dataframe as dd import numpy as np i
  • 将 lambda 函数应用于 dask 数据框

    我正在寻找申请lambda如果列中的标签小于一定百分比 则使用 dask 数据框的函数来更改列中的标签 我使用的方法适用于 pandas 数据框 但相同的代码不适用于 dask 数据框 代码如下 df pd DataFrame A ant
  • 在分布式 dask 中,我们如何为每个工作人员选择 --nthreads 和 --nprocs ?

    我们如何选择 nthreads and nprocsDask 中每个工人的分布情况 我有 3 个工作线程 2 个工作线程有 4 个核心 每个核心有一个线程 1 个工作线程有 8 个核心 根据输出lscpu每个worker上的Linux命令

随机推荐