2017-07-22 3 views
0

Ich habe ein Programm, das einige Daten aus dem Internet herunterladen und speichern Sie es als csv, und laden Sie diese Daten dann auf Google Cloud Storage Bucket. Als nächstes wird das Programm gsutil verwenden, um eine neue Google BigQuery Table zu erstellen, indem alle Dateien in der Google Cloud Storage Bucket verkettet werden. Um die Verkettungs führe ich diesen Befehl in command prompt:Google BigQuery: Wie benutze ich gsutil um eine Tabelle zu entfernen oder zu überschreiben?

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 

Das Problem ist, dass aus irgendeinem Grund dieser Befehl an die vorhandene Tabelle anhängt, so bekomme ich eine Menge von doppelten Daten. Die Frage ist, wie kann ich entweder gsutil verwenden, um die Tabelle zuerst zu löschen, wie kann ich gsutil verwenden, um die Tabelle zu überschreiben?

Antwort

2

Wenn ich deine Frage richtig verstanden, sollten Sie löschen und die Tabelle neu mit:

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

Dies ist, was ich gesucht habe. Die einzige Möglichkeit, dies zu verbessern, wäre das Hinzufügen der project_id, so dass der Befehl wie folgt aussehen würde: 'bq rm -f -t --project_id = ib-17 da.hi' – user1367204

2

Eine weitere Möglichkeit, die --replace Flagge zu verwenden ist, wie zum Beispiel:

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

denke ich, dass diese Flag wurde einmal WRITE_DISPOSITION genannt, aber sieht aus wie der CLI den Namen --replace aktualisiert.

Verwandte Themen