NodeJS Parquet 写入

Sun*_*nil 3 bigdata node.js google-bigquery

我有一堆专栏(大约 30 个)。其中有数组、具有多行空间的文本字段(Word 文档)等。我认为 CSV 不会是一种合适的格式,因为有多个新行。我正在考虑使用 Parquet 格式。

文件本身需要通过 NodeJS 生成。

  1. Parquet 有首选库吗?
  2. 另外,对于大查询的特定文件格式有什么建议吗?

任何指示都会有帮助

sha*_*359 5

Parquet 上的 Node JS 库维护得不好。您可以查看我关于同一主题的其他答案。它列出了最受欢迎的。

  • 镶木地板
  • 镶木地板
  • Parquetjs 精简版
  • 节点镶木地板

我建议尝试一下下面的库。

DuckDB - DuckDB是一个进程内嵌入式库/数据库。它有很多围绕镶木地板文件构建的功能。

它可以将 parquet 文件写入磁盘、直接写入 S3 存储桶等。

DuckDB 支持的 Parquet 功能 - https://duckdb.org/docs/data/parquet 。这是一个简单的片段。

var duckdb = require('duckdb');
var db = new duckdb.Database(':memory:');
db.all("COPY (SELECT 'BOB' AS NAME, 'LONDON' AS CITY) TO 'result-snappy.parquet' (FORMAT 'parquet')", function(err, res) {
  if (err) {
    throw err;
  }
  console.log(res)
});
Run Code Online (Sandbox Code Playgroud)

执行脚本:

PS C:\Users\user1\Downloads> node .\duck-script.js
[ { Count: 1 } ]
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

在您的情况下,您可能必须首先将数据加载到 duckdb 表,然后将其写入 parquet 文件。

文档管理系统