如何为熊猫gpq修复“模式中已经存在字段单位”

时间:2019-06-17 22:59:41

标签: python pandas google-bigquery python-bigquery

版本: Mac OS Mojave 10.14.5 Python 3.6.5 熊猫0.24.2 熊猫-gbq 0.10.0

我正在尝试从shipstation api中提取数据并将其加载到bigquery中以在我们的BI平台(Tableau)中使用。我已经成功进行了api调用,该调用返回了json对象。我已经成功地将其转换为pandas df对象。当我尝试将df写入BigQuery中的数据集时,出现错误:“字段单位已存在于架构中”,即使我正在编写的表不存在且由pandas-gbq创建。

我尝试创建要写入的表并仅追加字段,但是出现类似的错误,需要确保我的模式对齐。我尝试设置if_exists = replace,但是也没有用。我发现了一些问题,这些问题建议确保我的所有列都是时间戳记对象而不是日期时间,这也不能解决问题。

这是我的代码:

df = pd.io.json.json_normalize(data)
df.columns = df.columns.map(lambda x: x.split(".")[-1])
pandas_gbq.to_gbq(df, 'my_dataset.my_table', project_id='project-id',if_exists='replace')

这是错误:

GenericGBQException: Reason: 400 POST https://www.googleapis.com/bigquery/v2/projects/forte-data/datasets/ss/tables: Field units already exists in schema

任何帮助将不胜感激。

谢谢

1 个答案:

答案 0 :(得分:1)

嘿,也许迟了,但是遇到了类似的问题,

该列可能是在DF中重复的,请检查DF中是否有“字段”(小写)