在nodejs中读取镶木地板文件

Reading a parquet file in nodejs

我正在尝试使用以下代码(来自 parquetjs-lite 和 Whosebug 的示例)在 nodejs 中读取 parquet 文件:

const readParquetFile = async () => {
try {
       // create new ParquetReader that reads from test.parquet
       let reader = await parquet.ParquetReader.openFile('test.parquet');
    }
catch (e){
    console.log(e); 
    throw e;
  }
 
// create a new cursor
let cursor = reader.getCursor();
 
// read all records from the file and print them
let record = null;
while (record = await cursor.next()) {
  console.log(record);
}

await reader.close();

  };

当我 运行 这段代码没有任何反应。控制台没有写入任何内容,出于测试目的,我只使用了一个小的 csv 文件,我使用 python 将其转换为镶木地板。

  1. 是不是因为我已经使用 python 从 csv 转换为 parquet(我找不到任何 JS 等价于我最终必须能够使用的大文件)。
  2. 我希望我的应用程序能够接收并读取任何 parquet 文件。 parquetjs-lite在这方面有什么限制吗
  3. 我的 CSV 中有 NaN 值,这会是个问题吗?

任何指点都会有所帮助。

谢谢

可能的失败案例是

您在没有网络服务器的情况下在某个文件中调用此函数 运行ning。 在这种情况下,文件将 运行 处于异步模式,并且随着异步函数进入回调堆栈并且您的主堆栈为空,程序将结束,即使您的调用堆栈中有代码,它也永远不会 运行或记录任何内容。

要解决此问题,请尝试 运行使用网络服务器或更好地使用同步调用

//app.js(没有网络服务器)

const readParquetFile = async () => {
    console.log("running")
}
readParquetFile()
console.log("exit")

当你运行上面的代码时,输​​出将是

exit

//syncApp.js

const readParquetFile = () => {
    console.log("running")
    // all function should be sync
}
readParquetFile()
console.log("exit")

这里是控制台日志

running
exit