如何最有效地使用GroovyGPAR处理CSV文件的行?

如何最有效地使用GroovyGPAR处理CSV文件的行?,第1张

概述这个问题是一个简单的问题,我很惊讶,当我搜索它时,它没有立即d出. 我有一个CSV文件,一个可能真的很大的,需要处理.每一行都应交给处理器,直到处理所有行.对于读取CSV文件,我将使用OpenCSV,它本质上提供了一个readNext()方法,它给我下一行.如果没有更多行可用,则所有处理器都应该终止. 为此,我创建了一个非常简单的groovy脚本,定义了一个同步的readNext()方法(因为下一 这个问题是一个简单的问题,我很惊讶,当我搜索它时,它没有立即d出.

我有一个CSV文件,一个可能真的很大的,需要处理.每一行都应交给处理器,直到处理所有行.对于读取CSV文件,我将使用OpenCSV,它本质上提供了一个readNext()方法,它给我下一行.如果没有更多行可用,则所有处理器都应该终止.

为此,我创建了一个非常简单的groovy脚本,定义了一个同步的readNext()方法(因为下一行的读取并不耗费时间),然后创建了一些读取下一行并处理它的线程.它工作正常,但…

不应该有可以使用的内置解决方案?这不是gpars集合处理,因为它总是假定内存中有一个现有的集合.相反,我无法将它全部读入内存,然后处理它,这将导致outofmemory异常.

所以….任何人有一个漂亮的模板处理CSV文件“一行一行”使用几个工作线程?

解决方法 同时访问文件可能不是一个好主意,而GPars的fork / join-processing只适用于内存中的数据(集合).我的消息是将文件顺序读入列表.当列表达到一定的大小时,使用GPars同时处理列表中的条目,清除列表,然后继续阅读. 总结

以上是内存溢出为你收集整理的如何最有效地使用Groovy / GPAR处理CSV文件的行?全部内容,希望文章能够帮你解决如何最有效地使用Groovy / GPAR处理CSV文件的行?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1237725.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存