2017-09-29 4 views
1

Python 용 Google Cloud Client 라이브러리 here을 사용하여 BigQuery에 대한 SQL 쿼리를 만들고 있습니다. 나는 쿼리 결과 헤더를 포함하는 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! 

감사합니다.

관련 문제