Google BigQuery:如何使用 gsutil 删除或覆盖 table?

Google BigQuery: How to use gsutil to either remove or overwrite a table?

我有一个程序可以从网上下载一些数据并将其保存为 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

问题是出于某种原因,此命令附加到现有 table,因此我得到了很多重复数据。问题是我怎样才能使用 gsutil 删除 table 或者我怎样才能使用 gsutil 覆盖 table?

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

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

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

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

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