【问题标题】:Error while trying to append data to a BigQuery table using pandas data frame尝试使用 pandas 数据框将数据附加到 BigQuery 表时出错
【发布时间】: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


    【解决方案1】:

    也许您的数据框中有 __index_level_0__ 列? 尝试删除索引:

    df.reset_index(drop=True, inplace=True)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-01-18
      • 2014-12-17
      • 1970-01-01
      • 2021-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多