我对nodejs的体验非常基础,所以请耐心等待。我正在尝试用以下方法编写和阅读镶木地板文件:
https://github.com/ironSource/parquetjs
我在那里遵循示例(使用节点8)并成功编写了'fruits.parquet'
但是,当我尝试阅读时:
async function read() {
let reader = await parquetjs.ParquetReader.openFile('fruits.parquet');
let cursor = reader.getCursor();
let record = null;
while (record = await cursor.next()) {
console.log(record);
}
}
read();
我明白了:
附加调试器。
(节点:14795)[DEP0062]弃用警告:node --inspect --debug-brk
已弃用。请改用node --inspect-brk
。
(node:14795)UnhandledPromiseRejectionWarning:未处理的promise promise(拒绝ID:1):错误:读取失败
(节点:14795)[DEP0018]弃用警告:不推荐使用未处理的拒绝承诺。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。
等待调试器断开..
任何想法如何调试 - 它发生在openFile('fruits.parquet')上 我知道该文件存在,我也试图确保对文件中的所有文件进行读/写访问。
感谢。
答案 0 :(得分:0)
parquetjs.ParquetReader.openFile('fruits.parquet');
导致拒绝承诺(可能文件位置不正确)。
问题在于错误未得到处理并以某种方式“吞噬”
尝试捕获错误以正确调试它:
try {
let reader = await parquetjs.ParquetReader.openFile('fruits.parquet');
} catch (e){
console.log(e); // or breakpoint, etc
throw e;
}
答案 1 :(得分:0)
此答案并非完全针对调试问题,而是替代解决方案。 要打开本地文件,我在parquetjs-lite包中使用了以下代码,希望这会有所帮助。 parquetjs-lite还可以帮助读取s3存储桶文件
const parquet = require("parquetjs-lite");
const readParquetFile = async () => {
// create new ParquetReader
let reader = await parquet.ParquetReader.openFile("fruits.parquet");
// 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();
}
别忘了最后关闭阅读器。
我是回答stackoverflow的新手,请忽略它是否有用。