【问题标题】:Reading large CSV file on a JavaScript frontend application在 JavaScript 前端应用程序上读取大型 CSV 文件
【发布时间】:2020-02-26 12:27:16
【问题描述】:

我有几个 CSV 文件,我想在基于 JavaScript 的前端应用程序中使用它们。它们中的大多数都存储在云上。考虑到某些 CSV 有时非常大(几 GB),我首先考虑使用 parquetjs 进行压缩,并将它们作为小型 parquet 文件传输到前端(我们的 CSV 文件和 parquet 中有大量冗余允许我们实现高压缩结果,即一个 1.6Gb 的 CSV 文件被压缩为一个 7Mb 的 parquet 文件)。

对于优化问题,我打算使用 parquetjs 的流功能“即时”提取 CSV 文件。但不知何故,这个功能似乎还不是很成熟。我想知道是否有可能找到另一种解决方案来进行快速流式 CSV 解压缩。是否有基于 zip 的 JavaScript 包可以解决问题?直接传输和读取大型 CSV 文件对我来说似乎不是最佳解决方案。

【问题讨论】:

  • 我实际上很难想出一个能够以高性能方式处理如此大的 CSV 文件的通用系统
  • 谁将使用这个应用程序?没有人可以处理页面上千兆字节的信息。我认为您需要重新考虑设计,也许使用 fetch 的想法和具有分页功能的 api。
  • @abbaf33f 我们目前正在优化我们的后端以减少 CSV 文件。事实上,我们不需要前面的所有 CSV 数据。只有几列用于可视化。我们曾考虑使用 apache-arrow 来满足我们的需求,以实现类似于 Pandas 的行为,但该解决方案被证明是有缺陷的

标签: javascript csv parquet parquetjs


【解决方案1】:

如果我对问题的理解正确,并且根据您想在客户端上执行的操作,您可能会使用 Fetch API 并使用 response.body 流来处理它,因为它仍在下载。

a post by Jake Archibald 涉及如何读取 CSV 数据流,这可能很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 1970-01-01
    • 2016-04-26
    • 1970-01-01
    • 2017-04-09
    • 2021-09-02
    • 1970-01-01
    相关资源
    最近更新 更多