2017-07-22 43 views
0

我有一个程序,它将从网上下载一些数据并将其保存为csv,然后将该数据上传到Google Cloud Storage Bucket。接下来,该程序将使用gsutil通过连接Google Cloud Storage Bucket中的所有文件来创建新的Google BigQuery Table。要做到串接我command prompt运行此命令:Google BigQuery:如何使用gsutil删除或覆盖表格?

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来覆盖表格?

回答

2

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

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 
+0

这就是我一直在寻找的东西。改进这个的唯一方法是添加project_id,所以命令如下所示:'bq rm -f -t --project_id = ib-17 da.hi' – user1367204

2

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

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

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