簡體   English   中英

使用 fs.createWriteStream 將數據寫入 bigquery (node.js) 時出現模式錯誤

[英]schema error when using fs.createWriteStream to write data to bigquery (node.js)

錯誤: No schema specified on job or table

不知道為什么會發生此錯誤。 代碼來自文檔。 我也嘗試過使用不同的格式,例如 fs.createWriteStream({sourceFormat: "json"}) - 但它會導致相同的錯誤。

const { BigQuery } = require("@google-cloud/bigquery");
const bigquery = new BigQuery();
const dataset = bigquery.dataset("firebase_test_data");
const table = dataset.table("flattened_data");
const fs = require("fs");

fs.createReadStream("./data.json")
  .pipe(table.createWriteStream("json"))
  .on("job", (job) => {
    // `job` is a Job object that can be used to check the status of the
    // request.
    console.log(job);
  })
  .on("complete", (job) => {
    // The job has completed successfully.
  });

您收到此錯誤是因為const table = dataset.table("flattened_data");中定義的表沒有您在 data.json 中傳遞的適當架構。

您可以根據Google 文檔嘗試以下代碼,並在 BigQuery 中指定表的架構,從而成功地將數據加載到表中。

const {BigQuery} = require('@google-cloud/bigquery');
const bigquery = new BigQuery();
const dataset = bigquery.dataset('my-dataset');
const table = dataset.table('my-table');

//-
// Load data from a JSON file.
//-
const fs = require('fs');

fs.createReadStream('/path-to-json/data.json')
 .pipe(table.createWriteStream('json'))
 .on('job', (job) => {
   // `job` is a Job object that can be used to check the status of the
   // request.
 })
 .on('complete', (job) => {
   // The job has completed successfully.
 });

暫無
暫無

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

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