【发布时间】: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