pandas to gbq заявляет о несоответствии схемы, в то время как схемы в точности совпадают. На GitHub все проблемы, как утверждается, были решены в 2017 году - PullRequest
0 голосов
/ 11 июня 2019

Я пытаюсь добавить таблицу в другую таблицу с помощью панд, извлекая данные из BigQuery и отправляя их в другой набор данных BigQuery. В то время как схема таблицы точно такая же, я получаю ошибку "" Пожалуйста, убедитесь, что структура и " pandas_gbq.gbq.InvalidSchema: убедитесь, что структура и типы данных в кадре данных соответствуют схеме таблицы назначения. "

Эта ошибка возникла ранее, когда я пошел на перезапись таблиц, но в этом случае наборы данных слишком велики, чтобы сделать это (и это не является устойчивым решением).

    df = pd.read_gbq(query, project_id="global-dashboard-146013", credentials=bigquery_key,
                     dialect='standard')
    pd.io.gbq.to_gbq(df, dataset, projectid,
                     if_exists='append',
                     table_schema=[{'name': 'Date','type': 'STRING'},
                                   {'name': 'profileId','type': 'STRING'},
                                   {'name': 'Opco','type': 'STRING'},
                                   {'name': 'country','type': 'STRING'},
                                   {'name': 'deviceType','type': 'STRING'},
                                   {'name': 'userType','type': 'STRING'},
                                   {'name': 'users','type': 'INTEGER'},
                                   {'name': 'sessions','type': 'INTEGER'},
                                   {'name': 'bounceRate','type': 'FLOAT'},
                                   {'name': 'sessionsPerUser','type': 'FLOAT'},
                                   {'name': 'avgSessionDuration','type': 'FLOAT'},
                                   {'name': 'pageviewsPerSession','type': 'FLOAT'}
                                   ],
                     credentials=bigquery_key)

Схема в BigQuery выглядит следующим образом:

Date                STRING      
profileId           STRING  
Opco                STRING  
country             STRING  
deviceType          STRING  
userType            STRING  
users               INTEGER 
sessions            INTEGER 
bounceRate          FLOAT   
sessionsPerUser     FLOAT   
avgSessionDuration  FLOAT   
pageviewsPerSession FLOAT   

Я тогда получаю следующую ошибку:

Traceback (последний вызов был последним): файл "..file.py", строка 63, в Основной ()

Файл "..file.py", строка 57, в основном updating_general_data (bigquery_key)

Файл "..file.py", строка 46, в update_general_data Полномочия = bigquery_key)

Файл ".. \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайт-пакеты \ панды \ ю \ gbq.py", строка 162, в to_gbq учетные данные = учетные данные, подробный = подробный, private_key = private_key)

Файл ".. \ AppData \ Local \ Programs \ Python \ Python37-32 \ Lib \ сайт-пакеты \ pandas_gbq \ gbq.py", строка 1141, в to_gbq «Пожалуйста, убедитесь, что структура и» pandas_gbq.gbq.InvalidSchema: Пожалуйста, убедитесь, что структура и типы данных в DataFrame соответствуют схеме таблицы назначения.

Мне кажется, что есть матч 1 на 1. Я видел, что другие потоки говорят об этом, и эти потоки в основном говорят о форматах даты, хотя формат даты в этом случае уже является строкой, а затем с table_schema, все еще сделанным в виде строки.

...