2 回答
TA贡献1789条经验 获得超10个赞
在 BigQuery导出限制中,提到 CSV 不支持嵌套和重复数据。因此,尝试导出到 Avro 或 JSON:
from google.cloud import bigquery
client = bigquery.Client()
bucket_name = 'your_bucket'
project = 'bigquery-public-data'
dataset_id = 'samples'
table_id = 'shakespeare'
destination_uri = 'gs://{}/{}'.format(bucket_name, '<your_file>')
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)
configuration = bigquery.job.ExtractJobConfig()
#For AVRO
#configuration.destination_format ='AVRO'
#For JSON
#configuration.destination_format ='NEWLINE_DELIMITED_JSON'
extract_job = client.extract_table(
table_ref,
destination_uri,
job_config=configuration,
location='US')
extract_job.result()
希望能帮助到你。
TA贡献1942条经验 获得超3个赞
现在无法测试,但也许这有效:
from google.cloud import bigquery as bq
ejc = bq.ExtractJobConfig()
ejc.destination_format='NEWLINE_DELIMITED_JSON'
extract_job = client.extract_table(
table_ref,
destination_uri,
# Location must match that of the source table.
location='US',
job_config=ejc) # API request
这个想法是使用 JSON 而不是 CSV,以便您支持嵌套数据。
添加回答
举报
