【发布时间】:2019-06-16 21:02:45
【问题描述】:
我有一个 .csv 文件,我想将它附加到我的 BigQuery 数据集/表中,其中一列的格式为 dd.mm.yyyy。因为我想使用分区表,所以我需要一列的格式为 DATE。
但是,我不确定如何仅为一列设置架构。我尝试了以下方法:
from google.cloud import bigquery as bq
dataset_ref = client.dataset(dataset_id)
table_ref = dataset_ref.table(table_id)
job_config = bq.LoadJobConfig()
job_config.write_disposition = bq.WriteDisposition.WRITE_APPEND
job_config.source_format = bq.SourceFormat.CSV
job_config.field_delimiter = delimiter
job_config.skip_leading_rows = 1
job_config.autodetect = True
job_config.schema_update_options = [
bq.SchemaUpdateOption.ALLOW_FIELD_ADDITION,
]
job_config.schema = [
bq.SchemaField('date_col', 'DATE')
]
job = client.load_table_from_file(
source_file,
table_ref,
location="europe-west2", # Must match the destination dataset location.
job_config=job_config) # API request
job.result() # Waits for table load to complete.
但它给出了错误:
google.api_core.exceptions.BadRequest:读取数据时出现 400 错误, 错误信息:CSV 表遇到太多错误,放弃。行: 1个;错误: 1. 请查看 errors[] 集合以获取更多信息 详情。
当我取出 .schema 选项时,它可以正常工作,但随后会将列作为字符串导入。
【问题讨论】:
标签: python python-3.x google-cloud-platform google-bigquery