Python google-cloud-bigquery Parquet 列“Date”的类型为 INT64,与目标cpp_type INT32 不匹配

Python google-cloud-bigquery Parquet column 'Date' has type INT64 which does not match the target cpp_type INT32

提问人:Siesta 提问时间:10/12/2020 最后编辑:Subbu VidyaSekarSiesta 更新时间:10/25/2023 访问量:1989

问:

我正在尝试使用 .我还使用client.load_table_from_dataframe

job_config = bigquery.LoadJobConfig(
    schema=[xxxxxx,xxxxxx,xxxxxx]) 

所有这些都有效,直到我不得不将代码移动到新的虚拟机并再次安装所有软件包。我一直在谷歌上解决这个问题,似乎越来越多的人在使用 Parquet 和 BQ 时遇到了问题,他们通过再次安装软件包解决了这个问题。这似乎对我不起作用。

而且我也不明白为什么错误说日期是.在大熊猫中,它是一种类型。在 BQ 表和架构中,它是 DATE 类型。有没有人遇到过类似的问题?INT64Datetime[n64]

python pandas google-bigquery

评论

1赞 Talador12 7/30/2021
我有同样的问题 - 我认为这可能与 bigquery 如何处理不同版本的 bigquery 之间的日期列有关。如果我找到解决方案,我会再次发布。

答:

0赞 khan 10/25/2023 #1

在加载日期之前,您可能应该在数据帧中将日期转换为字符串:

df["date"] = df["date"].map(lambda x: x.strftime("%Y-%m-%d")) 
df["date"] = df["date"].astype(str)