在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 将其转换为镶木地板。
- 是不是因为我已经使用 python 从 csv 转换为 parquet(我找不到任何 JS 等价于我最终必须能够使用的大文件)。
- 我希望我的应用程序能够接收并读取任何 parquet 文件。 parquetjs-lite在这方面有什么限制吗
- 我的 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
我正在尝试使用以下代码(来自 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 将其转换为镶木地板。
- 是不是因为我已经使用 python 从 csv 转换为 parquet(我找不到任何 JS 等价于我最终必须能够使用的大文件)。
- 我希望我的应用程序能够接收并读取任何 parquet 文件。 parquetjs-lite在这方面有什么限制吗
- 我的 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