假设我有一个包含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.
}
答案 0 :(得分:0)
您可以使用linux命令cut将这些列检索到一个单独的文件中,然后改为处理该文件。
cut -c1,20,50 giant.csv >> just3columns.csv