gpt4 book ai didi

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

转载 作者:数据小太阳 更新时间:2023-10-29 07:20:17 25 4
gpt4 key购买 nike

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

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

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

最佳答案

一次一行读取文件,一边读一边丢弃每一行:

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

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

关于ruby - 在 ruby​​ 中处理大型 CSV 文件(20G),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13849280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com