ブラウザツールを使用してスキーマを使用して大きなクエリテーブルを作成しました。次回は、ローカルからのAPI呼び出しを使用してそのテーブルにcsvを追加しますが、そのcsvにはすでに指定したすべての列が含まれているわけではありません。そのため、「提供されたスキーマがテーブルxxxxxxxxxxxxx:xxxx.xxxxと一致しません」というエラーが発生します。では、API呼び出しを介して特定の列のbigqueryテーブルに値を追加するにはどうすればよいですか?
1807 次
2 に答える
1
より狭いスキーマを使用してテーブルに追加できます。つまり、テーブルにフィールド「A」、「B」、および「C」がある場合、フィールド「B」が次のようにマークされている限り、フィールド「A」および「C」のみを持つCSVファイルを追加できます。オプション(これはデフォルトです)。ロードジョブでCSVファイルの正しいスキーマを提供していることを確認してください。
または、「allowJaggedRows」オプションがここで役立つ場合があります。これにより、スキーマにあるよりも少ない列を指定でき、残りはnullで埋められます。もちろん、スキーマの途中で列をスキップしたい場合は、運が悪いかもしれません。
最後に、tables.update()またはtables.patch()呼び出しを介して、スキーマを更新して列を追加できます。これにより、元のテーブルになかった列を追加できます。
于 2012-07-07T23:51:39.777 に答える
0
CSVの代わりにJSONデータ形式を使用すると、フィールドがNULL可能(必須ではない)としてマークされている場合に、これを行うことができます。
ドキュメントのこの部分では、JSON形式を紹介しています:https ://developers.google.com/bigquery/preparing-data-for-bigquery
于 2013-11-05T21:16:05.653 に答える