如何使用Java批量读取非常大的csv文件(超过30GB)

时间:2016-06-17 02:46:46

标签: java

Header说明了一切。该文件大致包含几个月的数据。我认为去读取整个内容并将其存储到内存中是不明智的,所以我听说通过批量操作它会快得多。但我以前从未尝试过,也不确定如何开始。

该文件包含几个月的数据并包含unix时间的日期,我的任务是计算行数并将它们分成不同的月份。然后缩小到具有最多记录数的月份,并从那个月开始进一步缩小以找到记录数量最多的那一天,并进一步缩小到小时。

任何想法怎么做?

2 个答案:

答案 0 :(得分:0)

我认为你应该逐行阅读文件,并使用正则表达式提取那些与不同文件中的某些模式匹配的行

答案 1 :(得分:0)

将文件拆分为可管理的部分,然后执行排序和合并排序(外部排序)。

此外,更改记录器以分割较小的记录。例如,关闭以前的日志并每天或每小时打开一个新日志。如果您希望经常分析日志,请考虑使用SQL数据库。