2017-09-29 3 views
1

私はBigQueryのにSQLクエリを作るためにはPython hereのためのGoogle Cloudクライアントライブラリを使用しています。クエリ結果をcsvファイルに書き込むことができます。このファイルにはクエリ結果のヘッダーも含まれています。BigQueryクライアントを使用して非同期クエリからクエリ結果のヘッダーを取得するにはどうすればよいですか?

私は、非同期クエリを作成するには、以下のコードスニペットを使用しています:

job = bigquery_client.run_async_query(job_name, sql_query) 
query_results = job.result() 
data = query_results.fetch_data() # returns an iterator to the query result data, this is successful 
schema = query_results.schema # returns() 
print(schema) 

私は、クエリ結果データを取得することができました。クエリ結果のヘッダーを抽出する私の計画は、まずクエリ結果テーブルのスキーマを取得することでした。しかし、query_results.schemaを使用しようとすると、空のタプル()が返されます。 this documentationから、スキーマはNone until set by serverであることが言及されています。スキーマを正しく設定するためにサーバーを起動するにはどうすればよいですか?

ありがとうございました。

注:私は、クエリが同期している場合query_result.schemaを得ることは問題がありませんでした。

答えて

0

さて、私は方法を見つけました。どうやら、私は非同期クエリジョブの宛先テーブルをリロードする必要があります。

destination_table = query_job.destination 
destination_table.reload() 
schema = destination_table.schema # schema is reloaded correctly! 

ありがとうございます。