首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >处理大型文件的更好方法

处理大型文件的更好方法
EN

Software Engineering用户
提问于 2020-08-15 01:31:12
回答 1查看 647关注 0票数 -4

我有一个巨大的csv文件,我必须处理这个文件并做一些数据处理。现在,我正在缓冲区中读取/加载文件,然后进行数据处理工作。在文件非常大的情况下,我发现这种方法效率低下。加载/读取文件块,然后继续处理它,直到文件被完全处理,会更好吗?我需要建议。

EN

回答 1

Software Engineering用户

发布于 2020-08-15 16:38:54

如果您还在考虑一台计算机的范围,您可以使用线程、生产者/消费者模式或类似的模式进行扩展。基本上,有一个线程只读取文件,将行放入队列,并有N个线程从队列中选择元素并对其进行处理。这样,您将被IO和/或CPU限制。如果对队列大小设置了限制,您可以限制内存使用,即当队列很大时,生产者端等待一点,然后继续。

要进行扩展,您应该更改生成大型输入文件的过程,以生成许多更小的文件,称为切分。您可以查看数据流框架(如Beam ),以帮助您在许多计算机之间分发处理。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/414835

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档