BIGQUERY csv文件加载带有默认值的附加列

ysd

从Google提供的示例中,我已经按照指南(下面的链接和代码)设法将CSV文件加载到BigQuery(BQ)表中。
现在,我想向BQ中添加几个文件,并想添加一个filename包含文件名的新列

有没有一种方法可以使用默认数据添加列?

https://cloud.google.com/bigquery/docs/loading-data-cloud-storage-csv

// Import the Google Cloud client libraries
const {BigQuery} = require('@google-cloud/bigquery');
const {Storage} = require('@google-cloud/storage');

// Instantiate clients
const bigquery = new BigQuery();
const storage = new Storage();

/**
 * This sample loads the CSV file at
 * https://storage.googleapis.com/cloud-samples-data/bigquery/us-states/us-states.csv
 *
 * TODO(developer): Replace the following lines with the path to your file.
 */
const bucketName = 'cloud-samples-data';
const filename = 'bigquery/us-states/us-states.csv';

async function loadCSVFromGCS() {
  // Imports a GCS file into a table with manually defined schema.

  /**
   * TODO(developer): Uncomment the following lines before running the sample.
   */
  // const datasetId = 'my_dataset';
  // const tableId = 'my_table';

  // Configure the load job. For full list of options, see:
  // https://cloud.google.com/bigquery/docs/reference/rest/v2/Job#JobConfigurationLoad
  const metadata = {
    sourceFormat: 'CSV',
    skipLeadingRows: 1,
    schema: {
      fields: [
        {name: 'name', type: 'STRING'},
        {name: 'post_abbr', type: 'STRING'},
//      {name: 'filemame', type: 'STRING', value=filename} // I WANT TO ADD COLUMN WITH FILE NAME HERE
      ],
    },
    location: 'US',
  };

  // Load data from a Google Cloud Storage file into the table
  const [job] = await bigquery
    .dataset(datasetId)
    .table(tableId)
    .load(storage.bucket(bucketName).file(filename), metadata);

  // load() waits for the job to finish
  console.log(`Job ${job.id} completed.`);

  // Check the job's status for errors
  const errors = job.status.errors;
  if (errors && errors.length > 0) {
    throw errors;
  }
}
波尔沃

我会说你有几个选择。

  1. 上传之前(例如,使用awk或在JS中进行预处理)将一列添加到CSV中。
  2. 将单个CSV文件添加到单独的表中。您可以像在BigQuery中一样轻松地跨多个表进行查询这样,您可以轻松查看哪些数据来自哪个文件,并且可以访问表元数据获取文件名
  3. 通过在使用常规sql / api调用加载数据后添加列来对数据进行后处理
  4. 另请参见此可能的重复项如何在将具有元数据值的新列加载到CSV时将其添加到CSV

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

BigQuery:从CSV加载,跳过列

来自分类Dev

带有GraphQL的BigQuery

来自分类Dev

在bigquery中加载geojson

来自分类Dev

带有循环的BigQuery UDF

来自分类Dev

BigQuery选择不同的值

来自分类Dev

使用Google BigQuery Client API在BigQuery中加载JSON文件

来自分类Dev

BigQuery:计算列的熵

来自分类Dev

修改列重复的Bigquery

来自分类Dev

无法将GCS中的CSV文件加载到bigquery中

来自分类Dev

如果不存在,则在日期范围内添加默认值(SQL - BIGQUERY)

来自分类Dev

BigQuery重叠值分布查询

来自分类Dev

BigQuery函数可保留值

来自分类Dev

Bigquery SQL MAX()文字值

来自分类Dev

Bigquery unnest hits - 复制值)

来自分类Dev

BigQuery将表格导出到CSV文件

来自分类Dev

在Google BigQuery中使用外部.csv文件

来自分类Dev

如何将 Avro 文件加载到具有“时间戳”类型的列的 BigQuery 表

来自分类Dev

BigQuery递归计算列

来自分类Dev

有或从句中的BigQuery RANK()

来自分类Dev

BigQuery-获取BigQuery表中的列总数

来自分类Dev

BigQuery从CSV创建表-自动创建列

来自分类Dev

BigQuery从CSV创建表-自动创建列

来自分类Dev

根据条件/列值BigQuery创建分区

来自分类Dev

BigQuery:键列中的不同值

来自分类Dev

将具有60k列的CSV导入BigQuery

来自分类Dev

如何从BigQuery中的列解析JSON文件

来自分类Dev

将数据加载到BigQuery时,csv文件中有换行符时,抱怨“缺少双引号(“)字符”

来自分类Dev

当文件具有混合数据字段作为列时如何将jsonl文件加载到BigQuery中

来自分类Dev

Bigquery使用默认服务帐户插入作业