【发布时间】:2016-10-07 23:03:08
【问题描述】:
我有一个包含大量数据的 .CSV 数据文件,我的意思是一吨(80+ 百万行)数据。
数据都在两列中,如下所示:
src | dst
123123 | 456456
321321 | 654654
987987 | 789789
123123 | 456456
等等 8000 万行。
(注意:我知道 .CSV 中的分隔符应该是一个 ',',但在这种情况下它是一个 '|' 。文件扩展名仍然是 .CSV)
我试图弄清楚如何编写一个程序来读取所有数据,并打印出“src”字段中重复值的数量。例如,在我的示例中,输出看起来像“123123:出现了 2 次”
我尝试了一些解决方案,最值得注意的是:How to read the csv file properly if each row contains different number of fields (number quite big)?
我编写了一个循环来将 'src' 从 'dst' 中拆分出来,其中 'newData' 是 .CSV 文件
//go through each line and split + link the data to src/dst
data.forEach(function (line) {
newData = line.split('|'); //note, split returns an array
let src = newData[0]; //src from data.csv
let dst = newData[1]; //dst from data.csv
//test print the data
//console.log(newData);
});
但是在从 newData[0] (src) 列获取计数重复值时遇到问题。
【问题讨论】:
-
每次获取文件时,您是否总是知道文件中有多少行?
标签: javascript node.js csv unique bigdata