快速读取100万列CSV文件的3列

时间:2014-09-14 03:09:12

标签: java csv memory-management io bufferedreader

假设我有一个包含100万列,数百GB的CSV文件。

我的目标是尽快将此CSV文件的第1列,第20列和第50列的每一行读入内存。

我如何实现这一目标?这样的东西会起作用,但在速度和内存方面效率很低,因为我需要解析每一个100万个元素的列 - 寻找一个不需要这个的更好的解决方案。

BufferedReader stream = ...;//reader
while ((line = stream.readLine()) != null) {
   String[] keep = line.split(",");
   //keep only 0th,19th,49th elements.
}

1 个答案:

答案 0 :(得分:0)

您可以使用linux命令cut将这些列检索到一个单独的文件中,然后改为处理该文件。

cut -c1,20,50 giant.csv >> just3columns.csv