我有一个CSV文件,一个可能真的很大的,需要处理.每一行都应交给处理器,直到处理所有行.对于读取CSV文件,我将使用OpenCSV,它本质上提供了一个readNext()方法,它给我下一行.如果没有更多行可用,则所有处理器都应该终止.
为此,我创建了一个非常简单的groovy脚本,定义了一个同步的readNext()方法(因为下一行的读取并不耗费时间),然后创建了一些读取下一行并处理它的线程.它工作正常,但…
不应该有可以使用的内置解决方案?这不是gpars集合处理,因为它总是假定内存中有一个现有的集合.相反,我无法将它全部读入内存,然后处理它,这将导致outofmemory异常.
所以….任何人有一个漂亮的模板处理CSV文件“一行一行”使用几个工作线程?
解决方法 同时访问文件可能不是一个好主意,而GPars的fork / join-processing只适用于内存中的数据(集合).我的消息是将文件顺序读入列表.当列表达到一定的大小时,使用GPars同时处理列表中的条目,清除列表,然后继续阅读. 总结以上是内存溢出为你收集整理的如何最有效地使用Groovy / GPAR处理CSV文件的行?全部内容,希望文章能够帮你解决如何最有效地使用Groovy / GPAR处理CSV文件的行?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)