【问题标题】:How to convert to NumPy datetime while downloading from Big Query从 Big Query 下载时如何转换为 NumPy 日期时间
【发布时间】:2020-05-27 10:09:18
【问题描述】:

我正在将查询结果下载到数据框中:

results = pandas.read_gbq(query=date_query, credentials=sa_creds)

如果在 BQ 中保存为表,查询的结果将具有以下架构:

my_date     DATE        NULLABLE
my_time     TIME        NULLABLE    
r_field1    INTEGER     NULLABLE    
r_field2    STRING      NULLABLE    
r_field3    FLOAT       NULLABLE    
r_field4    FLOAT       NULLABLE    

当我尝试从上面的独奏行保存到结果中时遇到的错误如下:

ValueError: Could not convert object to NumPy datetime

从我的搜索中,我怀疑它无法将 my_time 保存为 NumPy datetime 对象,尽管错误未指定该字段。我只是认为另一个是date,所以应该没有问题。

是否有不涉及我更改查询/模式的解决方法?

欢迎任何其他想法。

【问题讨论】:

  • 你能分享一下你的代码吗?例如,如何将其保存在 BQ 中
  • 为了获得上面的架构,我只是从 Web GUI 运行查询并将结果保存为表格。我还没有通过python来做。稍后我将使用.to_gbq 通过python 保存它。我分享的那条线是唯一相关的线。脚本的其余部分无关紧要。
  • 但是哪个命令产生了错误?
  • results = pandas.read_gbq(query=date_query, credentials=sa_creds)
  • @rmesteves 为我做了这件事。如果还有更多的解释可以写下来作为答案,我会接受。

标签: python pandas google-bigquery


【解决方案1】:

您遇到这个问题主要是因为您的环境正在使用某些库的旧版本。 本次迁移tutorial 以一些从BigQuery 查询公共数据的代码为例,包括TIME 类型的表。

在我的环境中重现相同的问题并将我的库版本与本教程的库版本进行比较后,我意识到 google-cloud-bigquery 和 pyarrow 库不是最新的。

正如 cmets 中所讨论的,要解决您必须运行的问题:

pip install --upgrade google-cloud-bigquery pyarrow

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-18
    • 2017-07-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多