簡體   English   中英

讀取鑲木地板文件 (nodeJS)-parquetjs 模塊時出錯

[英]Error reading parquet file (nodeJS)-parquetjs module

我對 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 --debug-brk 請改用node --inspect-brk (節點:14795)UnhandledPromiseRejectionWarning:未處理的承諾拒絕(拒絕ID:1):錯誤:讀取失敗(節點:14795)[DEP0018] DeprecationWarning:不推薦使用未處理的承諾拒絕。 將來,未處理的承諾拒絕將使用非零退出代碼終止 Node.js 進程。 等待調試器斷開連接..

任何如何調試這個的想法 - 它發生在 openFile('fruits.parquet') 我知道文件存在,我也試圖確保對文件上的所有內容進行讀/寫訪問。

謝謝。

parquetjs.ParquetReader.openFile('fruits.parquet');

導致被拒絕的承諾(可能文件位置不正確)。

問題是錯誤沒有被處理並且以某種方式“吞下”

嘗試捕獲錯誤以正確調試它:

try {
   let reader = await parquetjs.ParquetReader.openFile('fruits.parquet');
} catch (e){
  console.log(e); // or breakpoint, etc
  throw e;
}

這個答案不完全是關於調試您的問題,而是替代解決方案。 要打開本地文件,我使用以下代碼與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 的新手,所以如果它沒有用,請忽略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM