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

Sie*_*sta 10 python pandas google-bigquery

我正在尝试使用将 Dataframe 上传到 BigQuery Table client.load_table_from_dataframe。我还使用提供一个模式

job_config = bigquery.LoadJobConfig(
    schema=[xxxxxx,xxxxxx,xxxxxx]) 
Run Code Online (Sandbox Code Playgroud)

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

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

kha*_*han 0

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

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