错误:No schema specified on job or table.

不知道为什么会发生这个错误.代码来自文档.我还try 遵循不同的格式,如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 documentation并在BigQuery中指定TABLE的模式来try 以下代码,它会成功地将数据加载到表中.

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.
 });

Node.js相关问答推荐

如何使用MongoDB在Node.js 中向数组中添加项?

为什么在导出的函数中调用node-sqlite3中的数据库方法时不起作用?

无法使用NPM安装REDUX和DATEPPICER

mongodb首先自连接,然后根据某些条件与另一个表连接

bcrypt.compare 每次都返回 false

express app.post的多个参数在Node.js中的定义是什么

如何使用 $PATH 变量在系统中全局自动安装 bash 脚本?或者重写脚本到node

在路由上使用中间件时,Nodejs Express 应用程序失败

使用正则表达式查找文档,但输入是数组

nvm / node / npm: node 12 的 npm 比 node 14 的更新?

使用 .pipe(res) 向客户端发送音频不允许您搜索?

MERN 堆栈项目中的 React [create-react-app] 正在提供依赖项

如何在 cypress 测试中进行计算

无法更新MongoDB中的文档:";伯森场';writeConcern.w';是错误的类型';数组'&引用;

baseurl64 缓冲区解码

所有的javascript回调都是异步的吗?如果不是,我怎么知道哪些是?

如何为 node.js 服务器分配域名?

如何断言不为空?

将 expressjs 绑定到特定的 IP 地址

什么时候应该将函数存储到变量中?