【发布时间】:2020-03-25 08:34:40
【问题描述】:
说明
我有一个非常大的 CSV 文件(大约 1 GB),我想以每个大约 10 MB 的字节块进行处理。为此,我正在使用byte-range option fs.createReadStream(sampleCSVfile, { start: 0, end: 10000000 }) 创建一个可读流
问题
使用上述方法,从 CSV 文件读取的流包含最后一行的数据,但并不完全完整。我想要一种方法来识别最后一个换行符发生的字节索引,并使用该字节索引开始我的下一个可读流。
CSV 示例:(忽略标题行)
John,New York,52
Stacy,Chicago,19
Lisa,Indianapolis,40
示例操作:
fs.createReadStream(sampleCSVfile, { start: 0, end: 99 })
返回的数据:(修剪到上面指定的字节范围)
John,New York,52
Stacy,Chicago,19
Lisa,I
必需或预期:
John,New York,52
Stacy,Chicago,19
因此,假设从流中获取最后一个以字节索引 78 结尾的新行,那么我的下一个递归操作将是:fs.createReadStream(sampleCSVfile, { start: 79, end: 178 })
【问题讨论】:
标签: node.js csv nodejs-stream