You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

2024年NodeJS兼容Parquet 2.0的可用解析库推荐

推荐支持Parquet 2.0的NodeJS/TypeScript维护中解析库

针对你在NodeJS Lambda中解析Parquet 2.0文件为JSON数组的需求,推荐以下几个仍在维护、支持TypeScript且适配Lambda场景的库:

1. @apache-arrow/parquet + apache-arrow

  • 属于Apache官方生态,长期维护,完全支持Parquet 2.0规范
  • TypeScript类型定义完善,无需强制开启esModuleInterop这类特殊配置
  • 基于Apache Arrow内存模型,解析效率高,部署体积可控(核心包体积远低于250MB限制)
  • 使用示例:
    import { readFileSync } from 'fs';
    import { ParquetReader } from '@apache-arrow/parquet';
    import { tableFromIPC } from 'apache-arrow';
    
    async function parseParquetToJson(filePath: string) {
      const buffer = readFileSync(filePath);
      const reader = await ParquetReader.open(buffer);
      const table = await reader.readTable();
      reader.close();
      return table.toArray().map(row => row.toJSON());
    }
    
  • Lambda适配:打包时可通过tree-shaking剔除无用代码,进一步缩小部署包体积

2. parquet-wasm

  • 基于WebAssembly实现的轻量Parquet解析库,维护活跃
  • 完全支持Parquet 2.0,内置TypeScript类型
  • 包体积极小(核心Wasm文件仅1-2MB),完美适配Lambda的250MB部署限制
  • 使用示例:
    import { readFileSync } from 'fs';
    import { ParquetReader } from 'parquet-wasm';
    
    function parseParquetToJson(filePath: string) {
      const buffer = readFileSync(filePath);
      const reader = ParquetReader.open(buffer);
      const jsonArray = reader.readRecordsAsJson();
      reader.close();
      return jsonArray;
    }
    
  • 注意:Wasm在Lambda环境中运行无兼容性问题,无需额外配置

3. pyarrow(备选方案,通过child_process调用)

  • 若上述JS库仍无法满足需求,可通过NodeJS调用Python的pyarrow库(官方维护,对Parquet 2.0支持完善)
  • 部署时可借助Lambda Layer封装轻量Python环境,整体体积可控制在250MB以内
  • 适合对解析兼容性要求极高的场景,TypeScript可通过类型定义封装调用逻辑

内容的提问来源于stack exchange,提问作者Sean

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.27 02:57:37