Я использую pandas_gbq.to_gbq()
для экспорта DataFrame
в Google BigQuery с col1
, который имеет значение NULL.
>>>df
col1 day
apple 2019-03-01
None 2019-03-02
banana 2019-03-02
None 2019-03-03
>>>df.dtypes
col1 object
day datetime64[ns]
dtype: object
Без определения схемы таблицы я могу успешно экспортировать таблицу в BigQuery со значением null в col1
.
from google.cloud import bigquery
import pandas as pd
import pandas_gbq
pandas_gbq.to_gbq(df
,table_name
,project_id='project-dev'
,chunksize=None
,if_exists='replace'
)
схема таблицы по умолчанию в BigQuery:
col1 STRING NULLABLE
day TIMESTAMP NULLABLE
Однако, когда я пытаюсь определить day
как тип DATE в BigQuery, так как я не хочу тип TIMESTAMP, я столкнулся ошибка (я пробовал NaN и None; оба столкнулись с ошибками).
table_schema = [{'name':'day', 'type':'DATE'}]
pandas_gbq.to_gbq(df
,table_name
,project_id='project-dev'
,chunksize=None
,if_exists='replace'
,table_schema=table_schema
)
Сообщения об ошибках:
в df, файл table_schema = table_schema "/Users/xxx/anaconda3/lib/python3.6/site-packages/pandas_gbq/ gbq.py ", строка 1224, в to_gbq progress_bar = progress_bar, файл" /Users/xxx/anaconda3/lib/python3.6/site-packages/pandas_gbq/gbq.py ", строка 606, в load_data self.process_http_error (ex) Файл "/Users/xxx/anaconda3/lib/python3.6/site-packages/pandas_gbq/gbq.py", строка 425, в process_http_error вызывает GenericGBQException (формат "Reason: {0}". ex (ex )) pandas_gbq.gbq.GenericGBQException: Причина: 400 Ошибка при чтении данных, сообщение об ошибке: таблица CSV обнаружила слишком много ошибок, отказывает. Ряды: 1; ошибки: 1. Пожалуйста, обратитесь к коллекции ошибок [] для получения более подробной информации.
Я прочитал документацию pandas_gbq
, но все еще не могу выяснить.
https://pandas-gbq.readthedocs.io/en/latest/api.html#pandas_gbq .to_gbq
Может ли кто-нибудь указать мне правильное направление? Спасибо.