【发布时间】:2021-06-01 06:06:35
【问题描述】:
我有一个看起来像这样的 pandas 数据框:
它有 6 列。我尝试将其附加到 BigQuery 中具有相同架构的现有表中:
import os
from google.cloud import bigquery
# Login credentials
os.environ["GOOGLE_APPLICATION_CREDENTIALS"]="secret.json"
# Initialize big query
client = bigquery.Client()
# Table information
project = "xxxxxxxx"
dataset = "Vahan"
table = "rto_data"
table_id = '{}.{}.{}'.format(project, dataset, table)
# Setup for upload
job_config = bigquery.LoadJobConfig()
# Define the table schema
schema = [bigquery.SchemaField(name='State', field_type='STRING', mode='NULLABLE'),
bigquery.SchemaField(name='RTO', field_type='STRING', mode='NULLABLE'),
bigquery.SchemaField(name='Registration_Number', field_type='STRING', mode='NULLABLE'),
bigquery.SchemaField(name='Maker', field_type='STRING', mode='NULLABLE'),
bigquery.SchemaField(name='Date', field_type='DATE', mode='NULLABLE'),
bigquery.SchemaField(name='Registrations', field_type='INTEGER', mode='NULLABLE')]
job_config.create_disposition = "CREATE_IF_NEEDED"
# Make the API request
load_result = client.load_table_from_dataframe(dataframe=df,
destination=table_id,
job_config=job_config)
# Wait for query to finish working
load_result.result()
# Make an API request.
table = client.get_table(table_id)
# Output
print("Loaded {} rows and {} columns to {}".format(table.num_rows, len(table.schema), table_id))
我收到此错误:BadRequest: 400 Provided Schema does not match Table advanced-analytics-123456:Vahan.rto_data. Cannot add fields (field: __index_level_0__)
我将数据放在一个新表中,看起来查询正在添加一个名为__index_level_0__的随机新列
如何解决此问题,以便将数据附加到现有表中?非常感谢您的帮助!
【问题讨论】:
标签: python pandas google-bigquery