gpt4 book ai didi

python - 使用 Pandas 附加 BigQuery 表时如何修复无效架构

转载 作者:行者123 更新时间:2023-12-05 06:17:07 24 4
gpt4 key购买 nike

我正在尝试使用 Pandas 和 google-cloud-big 查询将数据附加到 BigQuery 中的表。我遇到的问题是我最初可以使用 if_exists=append 创建一个表,但是当我重新运行完全相同的查询时,我得到一个错误 -

"pandas_gbq.gbq.InvalidSchema: Please verify that the structure and data types in the DataFrame match the schema of the destination table."

这是我正在运行的代码:

import pandas as pd
from datetime import date
import pandas_gbq
from google.cloud import bigquery

output = [['Test', 'v1', 'cost_center', '123', date(2020, 1, 31), 30.0],
['Test', 'v1', 'cost_center', '345', date(2020, 1, 31), 72.0]]

headers = ['scenario', 'version', 'entity', 'account', 'period', 'amount']
df_output = pd.DataFrame(output, columns=headers)

dataset_table = 'my_dataset'
project_id ='my_project_id'
table_schema = [{'name':'scenario', 'type':'string'},
{'name':'version', 'type':'string'},
{'name':'entity', 'type':'string'},
{'name':'account', 'type':'string'},
{'name':'period', 'type':'date'},
{'name':'amount', 'type':'float'}
]
df_output.to_gbq(destination_table=dataset_table,
project_id= project_id,
if_exists='append',
table_schema=table_schema)

好像以前遇到过这个问题,here .但是没有答案。 SO 上的其他问题涉及数据框模式和 BQ 表模式之间存在类型差异的问题。

为了进一步简化问题,我尝试让所有列都具有 'type':'String',但我得到了相同的错误消息。

感谢您的帮助。

这是脚本运行一次后 BQ UI 中表架构的屏幕截图。

Screenshot of the table schema in BQ UI

最佳答案

我可以重现与您相同的错误,并且在将一些调试输出放入 pandas 库后(您也可以这样做),当类型名称为大写时,它对我有用

table_schema = [{'name':'scenario', 'type':'STRING'},
{'name':'version', 'type':'STRING'},
{'name':'entity', 'type':'STRING'},
{'name':'account', 'type':'STRING'},
{'name':'period', 'type':'DATE'},
{'name':'amount', 'type':'FLOAT'}

关于python - 使用 Pandas 附加 BigQuery 表时如何修复无效架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61787982/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com