在 ruby​​ 中处理大型 CSV 文件 (20G)

2024-04-07

我正在解决一个小问题,并会就如何解决它提供一些建议: 给定一个列数和行数未知的 csv 文件,输出包含值的列列表以及每个值重复的次数。不使用任何库。

如果文件很小,这应该不是问题,但是当它是几场演出时,我得到 NoMemoryError:无法分配内存。有没有办法创建哈希并从磁盘读取而不是将文件加载到内存?你可以在 Perl 中使用绑定哈希来做到这一点

编辑: IO#foreach 会将文件加载到内存中吗? File.open(文件名).each 怎么样?


一次一行读取文件,并在读取时丢弃每一行:

open("big.csv") do |csv|
  csv.each_line do |line|
    values = line.split(",")
    # process the values
  end
end

使用此方法,您永远不会耗尽内存。

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

在 ruby​​ 中处理大型 CSV 文件 (20G) 的相关文章

  • Sencha Cmd v4.0.2.67 创建后台进程失败

    我有一个使用 Sencha Command v4 0 2 67 生成的单页 ExtJS 应用程序 我正在尝试使用 Sencha Command v4 0 2 67 和以下命令进行构建 sencha app refresh sencha ap
  • 验证错误消息中不包含字段名称

    如果我有以下验证 validates inclusion of dob in gt Date new 1900 Time now years ago 18 to date message gt You must be 18 or older
  • 正则表达式:匹配包含数字和字母的字符串,但不匹配仅包含数字的字符串

    Question 我希望能够使用单个正则表达式 如果可能 来要求字符串适合 A Za z0 9 但不允许 仅包含数字或 和符号的字符串 以符号开头或结尾的字符串 多个符号彼此相邻 Valid test 0123 t0e1s2t3 0123
  • 比较 2 个 csv 文件之间的列并使用 Python 写入差异

    我试图通过比较 2 个 csv 文件之间的列来打印出差异 CSV1 SERVER FQDN IP ADDRESS serverA device1 com 10 10 10 1 serverA device2 com 10 11 11 1 s
  • 在Java中解析日期的毫秒分数

    我正在使用以下模式在 Java 中解析日期 从服务器获取 yyyy MM dd T HH mm ss SSS 传入的字符串可能属于以下类型 2015 01 01T00 00 00 561 2015 01 01T00 00 00 5 我的问题
  • ruby - 数组元素之间的排列

    我正在使用 ruby 在 Google Sketchup 中编写一个插件 在尝试排列数组中存在的两个数组时遇到了一个真正的问题 所有这些都取决于用户组合 我有一个数组数组 例如 1 lol so 当我们有这样的组合 1 2 3 没关系 它应
  • 在 Ruby 中定义元编程的方法参数

    在 Ruby 中 我们可以使用元编程来定义实例方法 例如 define method hi Hello SO world gt hi hi gt Hello SO world 这样 就可以定义一个带有动态名称 dynamic name hi
  • Java 到 ruby​​ AES/ECB/PKCS5Padding 加密

    我有一个使用第三方支付门户的在线电子商务网站 支付门户一直运行良好 直到第三方支付门户要求每个人开始使用带有其他支付参数的哈希密钥 现在的问题是第三方支付门户只提供了一页文档来实现哈希密钥 这是提供的文档 加密演算法 为了减少数据传输和发布
  • 截断浮点数而不向上舍入

    我有一个浮点数 我想将其截断为 3 位 但我不想向上舍入 例如 转换1 0155555555555555 to 1 015 not 1 016 我将如何在 Ruby 中做到这一点 您还可以转换为 BigDecimal 并对其调用 trunc
  • 找到具有公共键的哈希数组的最大值?

    我有两个数组 每个数组包含任意数量的具有相同键但不同值的哈希值 ArrayA value abcd value length 4 type 0 value abcdefgh value length 8 type 1 ArrayB valu
  • PDF解析提取CheckBox字段值

    我有一个 PDF 文档 想要从 PDF 和 Chackbox 和单选按钮类型字段值中提取内容 PDF 文件的版本为 1 4 Acrobat 5 x 可以从网络浏览器生成 CheckBox appear such types in PDF 我
  • ruby 运算符 ||= 智能吗?

    我有一个关于 ruby 中 语句的问题 这对我特别感兴趣 因为我正在使用它写入内存缓存 我想知道的是 首先检查接收器 看看它在调用该设置器之前是否已设置 或者它实际上是一个别名x x y 对于普通变量来说这并不重要 但使用类似以下内容 CA
  • Ruby 中的数字运算(需要优化)

    Ruby 可能不是最适合这种情况的语言 但我很乐意在我的终端中使用它 所以这就是我要使用的 我需要处理从 1 到 666666 的数字 因此我找出包含 6 但不包含 7 8 或 9 的所有数字 第一个数字是6 下一个16 then 26等等
  • 如何找到 Rails 中的当前路线?

    我需要知道 Rails 中过滤器中的当前路线 我怎样才能知道它是什么 我正在处理 REST 资源 但没有看到命名路由 如果您尝试对视图中的某些内容进行特殊处理 您可以使用current page as in 或者一个动作和ID 或命名路线
  • 为什么这个表达式会导致浮点错误?

    所以浮点运算是inexact http en wikipedia org wiki Floating point但这并不能完全解释这里发生的事情 46 pry main gt a 0 05 gt 0 05 47 pry main gt a
  • 使用正则表达式或其他解析从文件中读取值

    我有一个记录带有时间戳的值的文件 我必须在特定时间后读取特定值 例如 文件有 2013 03 03 19 08 22 car 2001 Ford 2013 03 03 19 08 27 Truck 2012 Chevy 2013 03 03
  • Oracle PL/SQL 块的语法图是否错误?

    我怀疑 a 的语法图plsql block如中给出的Oracle 数据库 PL SQL 语言参考对于 Release 2 来说是错误的 以供参考 这是当前的链接 http download oracle com docs cd E11882
  • 是否可以使用 Ruby 或 Python 发出禁用锚点/引用的有效 YAML?

    是否可以禁用创建锚点和引用 并有效地显式列出冗余数据 PyYAML或者红宝石的Psych引擎 也许我在网上搜索时错过了一些东西 但似乎可用的选项并不多Psych我无法确定是否PyYAML也允许这样做 理由是我必须序列化一些数据并以可读的形式
  • 使用 net/http 发送 Post 请求

    我需要将 JSON 数据发送到同一台计算机上运行的另一个应用程序 我像这样发送请求 rails 3 2 13 data some data hash url URI parse http localhost 6379 api plans r
  • sRails 4.2 / Rspec / rspec-retry - 关联属于/has_many 失败

    我在 rspec 上面临着一个巨大的问题 每次我尝试解决一个错误时 它都会创建另一个错误 我有一个模型交易 其中有 许多步骤 模型 步骤 rb belongs to deal foreign key gt deal id 模型 deal r

随机推荐

  • 如何自定义 YouTube 视频的结束时间?

    我正在尝试弄清楚如何为嵌入的 YouTube 视频指定自定义结束时间 我知道我可以通过添加来自定义开始时间开始 30 但我还没有看到任何与结束时间有关的内容 我需要能够为我正在构建的网络应用程序执行此操作 因此如果 YouTube 无法提供
  • Jekyll 插件不工作

    我开发了一个简单的 Jekyll 插件 用于生成类别页面 它在我的本地系统上运行良好 但在 github 站点上不起作用 这是插件的来源 https github com madhur madhur github com blob mast
  • 对于新 XPage 开发人员来说,最重要的 3 个 XPage 性能技巧是什么?

    您会告诉刚接触 XPage 的开发人员做哪 3 件事 以帮助最大限度地提高 XPage 应用程序的性能 Tim Tripcony 给出了很多建议
  • 如何使用 Drive Rest API 读取云端硬盘照片

    我正在尝试使用 Google Apps 脚本中的 Drive REST API 读取 Google Photos 代码如下所示 function myFunction var files Drive Files list maxResult
  • Microsoft.Owin.Cors 中间件与 ASP.NET Web Api 2.0 一起使用时会做什么?

    我有一个带有令牌身份验证的 ASP NET Web Api 2 0 项目 所有内容主要按照本文完成 使用 ASP NET Web API 2 Owin 和 Identity 进行基于令牌的身份验证 http bitoftech net 20
  • ASP.NET MVC 性能

    我发现一些疯狂的评论称 ASP NET MVC 比 ASP NET WebForms 快 30 倍 真正的性能差异是什么 是否经过测量以及性能优势是什么 这是为了帮助我考虑从 ASP NET WebForms 迁移到 ASP NET MVC
  • 将 Docker 容器限制为单个 cpu 核心

    我正在尝试构建一个在一致条件下运行代码片段的系统 我认为实现这一点的一种方法是在具有相同布局的 docker 容器中运行各种程序 保留相同数量的内存等 但是 我似乎不知道如何保持 CPU 使用率一致 我似乎能找到的最接近的是 cpu 共享
  • 压缩过滤器+MVC+Yahoo YSlow

    我一直在使用雅虎的 YSLOW 来尝试让我的页面运行得更快AgentX http www agentx co nz 我正在使用下面的压缩过滤器 当我通过 Visual Studio 运行该网站时 YSLOW 说所有文件都已压缩 当我查看实时
  • C#:从 XML 读取/写入日期时间

    我需要知道写作 阅读的最佳方式DateTime传入 传出 XML 我应该直接写吗DateTime转换为 XML 或DateTime ToString 转换为 XML 第二个问题是如何从 XML 中读取日期元素 铸造可以用于此目的吗 例如 D
  • RxJS (5.0rc4):暂停和恢复间隔计时器

    我正在使用 Rx 来保持动画时钟 每个动画帧都会将间隔刻度映射到该刻度的新值 假设我想暂停动画 最自然的方法是以某种方式暂停时钟接收 然后在稍后恢复它 取消订阅然后重新订阅并不是一个自然的选择 因为这个动画时钟是一个冷可观察的对象 我不想在
  • 如何使用 QtMqtt 和 SSL 执行安全 MQTT?

    我正在尝试使用 QtMQtt 示例项目 simpleclient 但我想执行安全的 MQTT 我该如何处理这个问题 我读过这篇博客 https www qt io blog 2017 08 14 introducing qtmqtt pro
  • 如何区分应用程序退出和系统关闭

    Mac OS X 上的 Java 在 Swing GUI 应用程序中 我想区分应用程序退出和系统关闭 在应用程序退出时 我想显示一个确认对话框 但是当用户选择 系统关闭 时 我只想退出应用程序 因为系统已经出现了一个确认对话框 这在其他平台
  • Python 中的意外列表行为

    我想颠倒一个列表 我成功地做到了 但在工作的过程中我发现了一些奇怪的事情 以下程序按预期工作 但未注释行list reversed i list len list 1 i and 打印 列表 i 评论最后一行当然 导致了改变list 我没看
  • 使用 setInterval() 后出现clearInterval() 未定义错误

    我知道这不应该是内联的 但 YUI 库的对话框迫使我这样做 我的问题是 每当我将鼠标悬停在该 div 上时 左边缘滚动就会激活 但当我将鼠标移出该 div 时 它不会停止 JS 控制台报告 未捕获的引用错误 timerID 未定义 这是代码
  • 如何从 MQTT 生产并在 ActiveMQ 中作为 MQTT 和 JMS 消费

    我有一个设置 其中消息作为 MQTT 生成到 ActiveMQ 我有两个消费者 一个作为 JMS 另一个作为 MQTT 当我将消息作为 JMS 消息发布到主题 foo 时 我在 JMS 和 MQTT 消费者处都收到消息 但是当我在同一主题上
  • make_shared真的比new更高效吗?

    我正在尝试shared ptr and make shared从 C 11 编写了一个小玩具示例来看看调用时实际发生了什么make shared 作为基础设施 我使用 llvm clang 3 0 以及 XCode4 中的 llvm std
  • 共享首选项和微调器不维护状态

    我有一个像这样的旋转器 Spinner 1 final Spinner plan Spinner dialog findViewById R id spinner1 strings getResources getStringArray R
  • Android - 使用外部浏览器在 WebView 中打开目标 _blank 链接

    我建立一个WebView显示一个网站 该网站包含无链接的链接target blank 属性和一些带有它的 我需要打开链接target在外部标准设备浏览器中定义的以及在 WebView 内部没有定义的 我正在使用一个WebViewClient
  • dart 中整数的最大值是多少?

    我到处都找过 但找不到与该主题相关的任何信息 另外 dart 中是否有类似 java 的 Long BigDecimal 数据类型 Dart 2 对于 dart2js 生成的 JavaScript Pixel Elephant 的答案仍然是
  • 在 ruby​​ 中处理大型 CSV 文件 (20G)

    我正在解决一个小问题 并会就如何解决它提供一些建议 给定一个列数和行数未知的 csv 文件 输出包含值的列列表以及每个值重复的次数 不使用任何库 如果文件很小 这应该不是问题 但是当它是几场演出时 我得到 NoMemoryError 无法分