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