python 或 dask 并行生成器?

2024-03-14

是否有可能在Python中(也许使用dask,也许使用多重处理)将生成器“放置”在核心上,然后并行地单步执行生成器并处理结果?

它需要特别是生成器(或带有__iter__);生成器生成的所有生成元素的列表不适合内存。

尤其:

有了熊猫,我可以打电话read_csv(...iterator=True),它给了我一个迭代器(TextFileReader) - 我可以for in它或显式调用 next 多次。整个 csv 永远不会被读入内存。好的。

每次我从迭代器读取下一个块时,我也会对其执行一些昂贵的计算。

但现在我有2个这样的文件。我想创建 2 个这样的生成器,并在一个核心上“放置”1 个,在另一个核心上“放置”1 个,这样我就可以:

 result = expensive_process(next(iterator))

在每个核心上并行,然后组合并返回结果。重复此步骤,直到一台发电机或两台发电机都超出产量。

看起来 TextFileReader 不可 pickle,生成器也不可。我不知道如何在 dask 或多处理中执行此操作。有这方面的模式吗?


Dask 的 read_csv 旨在以块的形式从多个文件加载数据,块大小可以指定。当您对生成的数据帧进行操作时,您将按块进行工作,这正是使用 Dask 的首要目的。应该不需要使用迭代器方法。

您最有可能想要使用的 dask dataframe 方法是map_partitions().

If you really想要使用迭代器的想法,你应该看看dask.delayed,它能够通过将函数的每次调用(每个调用使用不同的文件名)发送给您的工作人员来并行化任意 python 函数。

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

python 或 dask 并行生成器? 的相关文章

  • 在 sympy 绘图中,如何获得具有固定纵横比的绘图?

    如果我用这个片段画一个圆 from sympy import x y symbols x y p1 plot implicit Eq x 2 y 2 1 aspect ratio 1 1 我会得到一个像这样的图形窗口 现在长宽比不是我所期望
  • 如何在Python中找到低精度浮点值的原始文本表示?

    我遇到了显示问题floatPython 中的值 从外部数据源加载 它们是 32 位浮点数 但这也适用于较低精度的浮点数 以防万一 这些值是由人类在 C C 中输入的 因此与任意计算值不同 与round数字很 可能not预期的 但不能被忽略
  • Python 如果 kwargs 中的 key 并且 key 为 true

    if force in kwargs and kwargs force is True 感觉应该有更好的方法来编写这个条件 因为我重复了键和变量 假设您确实想检查返回的关键字参数是否is True 这是另一种稍微不同的方式 if kwarg
  • Flask - 如何从 JSON GET 请求获取参数

    我有一个发出以下 GET 请求的客户端 api GET tasks 5fe7eabd 842e 40d2 849e 409655e0891d 22task 22 22hello 22 22url 22 22 tasks 5fe7eabd 8
  • 如何从数据库模式自动生成示例 Django 应用程序?

    我正在评估概念验证应用程序的框架 该应用程序的生命周期约为 30 天 之后它将被遗忘或完全重写 我已确定要从现有数据库模式自动生成示例应用程序 然后调整视觉设计的某些方面 我看过一个演示红宝石 on Rails 它会为数据库中的每个表自动生
  • matplotlib 的 pcolor 中的白线

    在某些 pdf 查看器 例如 OSX 上的 Preview 中 使用以下命令绘制的图matplotlib的 pcolor 有白线 见下图 我怎样才能摆脱它们 源代码非常简单 选择任何数据x y z import matplotlib mat
  • 将元组列表转换为字符串 Python

    例如 我用 python 编写了一个返回列表的函数 1 1 2 2 3 3 但我希望输出为字符串 这样我就可以用另一个字符替换逗号 这样输出就是 1 1 2 2 3 3 有什么简单的方法可以解决这个问题吗 感谢您提前提供任何提示 这看起来像
  • 点击后 Dash DropDown 关闭

    我不希望下拉菜单在选择值后关闭 我希望它在我的页面上保持打开状态 我正在使用 dcc Dropdown dcc Dropdown id job type options self options placeholder Select one
  • 如何让 Discord 机器人显示“机器人正在输入...”状态?

    所以如果我有一个像这样的长命令 bot command pass context True async def longCommand ctx typing status sleep 10 bot say Done 不幸的是 在文档或此处没
  • Python 将 0 计算为 False

    在 Python 控制台中 gt gt gt a 0 gt gt gt if a print L gt gt gt a 1 gt gt gt if a print L L gt gt gt a 2 gt gt gt if a print L
  • 如何在Python中重命名virtualenv?

    我拼错了名字virtualenv使用以下方法初始化它 virtualenv vnev 我实际上打算创建一个名为的环境venv 尝试重命名后vnev文件夹到venv 我发现这并没有提供太多帮助 激活环境的名称仍然重命名旧的vnev mv vn
  • 使用 mechanize 和 beautiful soup 在 python 中进行原始 HTML 与 DOM 抓取

    我正在尝试编写一个程序 作为示例 该程序将从该网页上刮掉最高价格 http www kayak com flights JFK PAR 2012 06 01 2012 07 01 1adults http www kayak com fli
  • 为什么Python 3中实例方法可以作为类方法调用?

    考虑下面的类 class Foo object def bar self print self 在Python 2中 2 7 13 调用bar 作为类方法引发异常 gt gt gt Foo bar hello Traceback most
  • 并行磁盘 I/O

    我有几个想要阅读的日志文件 不失一般性 假设日志文件处理如下 def process infilepath answer 0 with open infilepath as infile for line in infile if line
  • Django - 从时间戳获取不同的日期

    我正在尝试按日期过滤用户 但直到我可以找到数据库中用户的第一个和最后一个日期为止 虽然我可以让我的脚本稍后过滤掉重复项 但我想从一开始就使用 Django 来完成此操作distinct因为它显着减少 我试过 User objects val
  • 在 CSV 文件的最上面一行写入

    我有这个sample csv 文件 a 1 apple b 2 banana c 3 cranberry d 4 durian e 5 eggplant 并有以下代码 samplefile open sample csv rb rows s
  • Python,质数检查器[重复]

    这个问题在这里已经有答案了 你好 我正在创建一个函数来检查一个数字是否是素数 但它告诉我 9 是一个素数 def eprimo num if num lt 2 return False if num 2 return True else f
  • 添加条件计数器:基于其他列的值的计数器列

    我有一张这样的桌子 id id2 val a red apple a red orange b blue fish c violet beef a yellow banana a black pork 我想根据 id 和 id2 的值创建一
  • 从 Python 访问 802.11 无线管理帧

    我想从 Linux 上的 Python 嗅探 802 11 管理 探测请求 帧 这可以从 Scapy 中实现 如下所示 coding utf 8 from scapy all import def proc p if p haslayer
  • 写入文件的正确方法?

    我想知道这样做是否有什么区别 var1 open filename w write Hello world 并做 var1 open filename w var1 write Hello world var1 close 我发现没有必要

随机推荐

  • 没有公钥的 EF 实体

    我想在 EF 中创建一个没有公钥的实体 支持表具有非唯一的聚集键 但表中的数据从概念上讲没有可以使用的唯一主键 看来EF确实不喜欢这样 有没有什么方法可以让 EF 接受该表没有主键并使其可以使用它 而不会影响性能 我不在乎结果是否是只读的
  • 当 php://temp 多次打开时会发生什么?

    If the php temp or php memory 文件被打开多次 句柄是否会指向同一个文件 或者每个手柄都是独一无二的 我在 php 文档中找不到答案 所以我要去编写一个测试脚本来找出答案 https stackoverflow
  • 将新 ns 映射到旧 ns

    我将 Android Studio 更新到 4 2 1 并删除了 jcentor 在构建项目时出现了这样的警告 我不明白这些 URL 的含义以及如何修复它 映射新的nshttp schemas android com repository
  • Flask 在文件上传时出现错误 400

    我有以下内容
  • 如何在我的发布 aar 中打包多个 AAR

    我们向客户发送 android sdk aar 文件 我们的代码在内部使用我们的存储库中的两个第三方 aar 并且 gradle 在运行时引用它 我的问题是如何将这些依赖项发送给客户 就好像如果我不想给他们那些第 3 方 aar 我怎样才能
  • 如何通过闪亮的按钮动态添加/删除输入字段

    我一直在尝试找到一种解决方案 如何使用闪亮的按钮添加和删除输入字段 我没有源代码 因为我还没有取得太大进展 但是这个 jQuery 示例 http www mkyong com jquery how to add remove textbo
  • 迁移到.net core 3.1后EF OrderBy出现问题

    考虑这段代码 dbContext Messages GroupBy m gt new MinId m SenderId lt m RecipientId m SenderId m RecipientId MaxId m SenderId g
  • 用g++编译简单的SDL程序时找不到-lSDLmain和-lSDL

    我使用 mingw 安装了 SDL2this http lazyfoo net SDL tutorials lesson01 windows mingw index php指导 但是 当我尝试使用他们提供的编译语法和测试代码进行编译时 仅使
  • java JNI 错误 java.lang.UnsatisfiedLinkError:

    java Djava library path TestJNI gt gt gt gt Exception in thread main java lang UnsatisfiedLinkError TestJNI calibrate D
  • 如何配置 GroovyConsole 以便我不必在启动时导入库?

    我有一个使用第三方库的常规脚本 每次我打开应用程序并尝试运行我的脚本时 我都必须导入正确的库 我希望能够打开 GroovyConsole 并运行我的应用程序 而无需导入库 在 Linux 中你也有 usr share groovy conf
  • NSString stringWithFormat 问题

    我正在尝试使用 NSString 构建一个小表 我似乎无法正确格式化字符串 这是我所拥有的 NSString stringWithFormat 8 6f e v 其中 e 是来自其他地方的 NSString v 是浮点数 我想要的是输出类似
  • Boost.Fusion运行时开关

    我正在从文件中读取对象的类型 enum class type index type index typeidx read file handle type index 根据类型索引 我想创建一个类型 从可能类型的列表中 并用它做一些通用的事
  • Pymongo 使用 $exists

    我是 pymongo 的新手 使用存在时遇到问题 使用时 collection find cwc exists True 我收到以下错误 Unsupported projection option exists 我想要完成的是找到所有 id
  • 可以使用反射访问方法变量吗?

    如何使用反射访问方法内定义的变量 我必须在 Hibernate 中创建标准 数据库是基于属性的 考虑一部电影 一部电影可以有多种语言和多种类型 例如 Movieid Property Value 1 Language Hindi 1 Lan
  • Gulp Typescript + Browserify;捆绑的 sourcemap 指向转译的 JS 而不是源 TS

    我正在开发一个 Typescript 项目 该项目被转换为 ES5 JS 然后通过 browserify 运行以创建单个 js 包和源映射 捆绑的源映射指向转译的 JS而不是源TS即使我生成的源映射在转换为 JS 时正确指向源 TS 这就好
  • 在内存中SQLite3共享数据库python

    我试图充分利用 aws 服务器 并想到跨多个线程使用内存数据库 在 python 中使用 SQLite 3 我在网上找到了这个命令 conn sqlite3 connect file memory cache shared 但后来我得到了这
  • 在Python中,如何在一行代码中创建一个包含n个字符的字符串?

    我需要在Python中生成一个包含n个字符的字符串 是否有一个简单的答案可以使用现有的 Python 库来实现这一目标 例如 我需要一串 10 个字母 string val abcdefghij 简单地重复同一个字母 10 次 string
  • xargs的默认分隔符可以更改吗?

    我想要以下行为 而不必使用选项显式指定它 xargs d n 与大多数命令不同 您不能只使用别名 因为管道无法识别别名 顺便说一句 为什么要这样设计 我也尝试创建自己的 bin xargs脚本 但我认为这并不像在脚本中读取 作为字符串那么简
  • D3 单击更新数据集并重新绘制条形图

    我是 d3 和 javascript 的新手 并且在更新数据集以及重新绘制条形时遇到问题 这是我到目前为止一直在查看的代码 http jsfiddle net TwEhT 2 http jsfiddle net TwEhT 2 我有一个函数
  • python 或 dask 并行生成器?

    是否有可能在Python中 也许使用dask 也许使用多重处理 将生成器 放置 在核心上 然后并行地单步执行生成器并处理结果 它需要特别是生成器 或带有 iter 生成器生成的所有生成元素的列表不适合内存 尤其 有了熊猫 我可以打电话rea