【发布时间】:2018-11-23 14:42:24
【问题描述】:
我的问题是关于提取表的代码 从 Bigquery 中提取表并将其保存为 json 文件 . 我主要是按照他们文档中的 gcloud 教程来编写代码的。
我无法隐式设置我的凭据,因此我以显式方式将其设置为我的 json 文件。但它似乎并没有完全按照我所走的路径获得“客户端”对象。
如果有人能澄清整个隐式和显式凭据的工作原理,那也会对我有很大帮助!
我正在使用 python 2.7 和 pycharm。代码如下:
from gcloud import bigquery
from google.cloud import storage
def bigquery_get_rows ():
json_key = "path/to/my/json_file.json"
storage_client = storage.Client.from_service_account_json(json_key)
print("\nPeguei o Cliente\n")
# Make an authenticated API request
buckets = list(storage_client.list_buckets())
print(buckets)
print(storage_client)
#Setando ambiente
bucket_name = 'my_bucket/name'
print(bucket_name)
destination_uri = 'gs://{}/{}'.format(bucket_name, 'my_table_json_name.json')
print(destination_uri)
#dataset_ref = client.dataset('samples', project='my_project_name')
dataset_ref = storage_client.dataset('my_dataset_name', project='my_project_id')
print(dataset_ref)
table_ref = dataset_ref.table('my_table_to_be_extracted_name')
print(table_ref)
job_config = bigquery.job.ExtractJobConfig()
job_config.destination_format = (
bigquery.DestinationFormat.NEWLINE_DELIMITED_JSON)
extract_job = client.extract_table(
table_ref, destination_uri, job_config=job_config) # API request
extract_job.result() # Waits for job to complete.
bigquery_get_rows()
【问题讨论】:
标签: python google-bigquery gcloud