【问题标题】:Sorting records in a CSV file对 CSV 文件中的记录进行排序
【发布时间】:2022-01-18 17:15:22
【问题描述】:

告诉我如何使用 typescript + node js 对 CSV 文件中的记录进行排序。按 ID 排序。 文件中的记录数最多可达 100 万条。

这是一个文件条目示例:

Blockquote

【问题讨论】:

  • 按什么排序:按字段的字符串值,lexicographically 使用默认比较功能string[].sort() 比较字符串?整理好之后呢?写入同级文件?我们需要更多标准来帮助您。您是否需要 JavaScript 方法方面的帮助或概念上的帮助,因为您没有分配足够的内存来一次解析和保存内存中的数据?
  • 按字符串值排序 - Id。排序后,需要写入新文件。

标签: node.js typescript csv file


【解决方案1】:

这是一个概念性的解决方案:

  1. 创建一个新的 SQLite 数据库,其中的表具有适合您的列的架构

  2. 从源 CSV 文件流式传输数据,一次读取一行:解析该行中的数据并将其插入上一步的 db 表中

  3. 创建输出 CSV 文件并附加标题行

  4. 以所需的排序顺序遍历 db 表条目,一次一个:将每个条目以正确的列顺序转换回 CSV 行,然后在上一步中将该行附加到 CSV 文件中

  5. 清理:(可选地验证您的新 CSV 文件,然后)删除 SQLite db

如果您可以一次将整个已解析的 CSV 数据放入内存中,则可以将每一行推送到一个数组中,而不是使用 db。然后,您只需对数组进行就地排序并迭代其元素。

【讨论】:

    猜你喜欢
    • 2018-04-29
    • 1970-01-01
    • 2016-03-16
    • 2017-06-23
    • 1970-01-01
    • 1970-01-01
    • 2017-02-02
    • 2015-06-14
    • 2011-07-02
    相关资源
    最近更新 更多