加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-14 16:31:04 所属栏目:大数据 来源:网络整理
导读:这个问题是一个简单的问题,我很惊讶,当我搜索它时,它没有立即弹出. 我有一个CSV文件,一个可能真的很大的,需要处理.每一行都应交给处理器,直到处理所有行.对于读取CSV文件,我将使用OpenCSV,它本质上提供了一个readNext()方法,它给我下一行.如果没有更多行可用
这个问题是一个简单的问题,我很惊讶,当我搜索它时,它没有立即弹出.

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

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

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

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

解决方法

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读