Как преобразовать в NumPy datetime при загрузке с Big Query - PullRequest
0 голосов
/ 27 мая 2020

Я загружаю результаты запроса в фрейм данных следующим образом:

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, так что проблем не должно быть.

Есть ли обходной путь, который не требует изменения запроса / схемы?

Любые другие идеи приветствуются.

1 Ответ

1 голос
/ 27 мая 2020

Вы столкнулись с этой проблемой в основном из-за того, что в вашей среде используются старые версии некоторых библиотек. В этом руководстве по миграции в качестве примера используются некоторые коды, которые запрашивают данные publi c из BigQuery, включая таблицы с типом TIME.

После воспроизведения той же проблемы в моей среде и сравнения моих библиотек версии к версиям библиотек этого руководства, я понял, что библиотеки google-cloud-bigquery и pyarrow не обновлены.

Как обсуждалось в комментариях, для решения проблемы вам нужно запустить:

pip install --upgrade google-cloud-bigquery pyarrow
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...