【问题标题】:Google BigQuery: How to use gsutil to either remove or overwrite a table?Google BigQuery:如何使用 gsutil 删除或覆盖表?
【发布时间】:2017-12-28 13:08:19
【问题描述】:

我有一个程序可以从网上下载一些数据并将其保存为csv,然后将该数据上传到Google Cloud Storage Bucket。接下来,该程序将使用gsutil 通过连接Google Cloud Storage Bucket 中的所有文件来创建一个新的Google BigQuery Table。要进行连接,我在command prompt 中运行此命令:

bq load --project_id=ib-17   da.hi   gs://ib/hi/*  da:TIMESTAMP,bol:STRING,bp:FLOAT,bg:FLOAT,bi:FLOAT,lo:FLOAT,en:FLOAT,kh:FLOAT,ow:FLOAT,ls:FLOAT

问题是由于某种原因这个命令附加到现有表中,所以我得到了很多重复的数据。问题是我怎样才能使用gsutil先删除表,或者我怎样才能使用gsutil覆盖表?

【问题讨论】:

    标签: google-bigquery gsutil


    【解决方案1】:

    如果我正确理解了您的问题,您应该删除并重新创建表:

    bq rm -f -t da.hi
    bq mk --schema da:TIMESTAMP,bol:STRING,bp:FLOAT,bg:FLOAT,bi:FLOAT,lo:FLOAT,en:FLOAT,kh:FLOAT,ow:FLOAT,ls:FLOAT -t da.hi
    

    【讨论】:

    • 这就是我要找的。改善这一点的唯一方法是添加 project_id,因此命令如下所示:bq rm -f -t --project_id=ib-17 da.hi
    【解决方案2】:

    另一种可能是使用--replace标志,例如:

    bq load --replace --project_id=ib-17   da.hi   gs://ib/hi/*
    

    我认为这个标志曾经被称为 WRITE_DISPOSITION,但看起来 CLI 将名称更新为 --replace

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 2020-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多