Я запускаю al oop, который запустит какой-то процесс, создаст фрейм данных, а затем фрейм данных будет добавлен в большую таблицу запросов. Но когда я добавляю в существующую таблицу, я получаю ошибку. Убедитесь, что структура и типы данных в DataFrame соответствуют схеме таблицы назначения. Значения поступают из функций.
from pandas.io import gbq
import pandas as pd
import numpy as np
import datetime as dt
from datalab.context import Context
import time
for id_name in ID_:
df= ['id_recip','length_data','length_action', 'daily_mail_freq', 'weekly_mail_frequency', 'imp_hour', 'imp_day']
columns = list(df)
data=[]
values = [id_name,length_data,length_action, daily_mail, weekly_mail, imp_hour, imp_day]
zipped = zip(columns, values)
a_dictionary = dict(zipped)
print(a_dictionary)
final_output=pd.DataFrame(a_dictionary)
final_output = final_output.astype(str)
final_output.info()
final_output.to_gbq('internal.frequency_output3',
Context.default().project_id,
if_exists='append')
Я преобразовал все данные в кадре данных в строку, чтобы избежать несоответствия типов данных. Сначала создается таблица l oop, если ее не существует.
Structure in bigquery table
daily_mail_freq STRING NULLABLE
id_recip STRING NULLABLE
imp_day STRING NULLABLE
imp_hour STRING NULLABLE
length_action STRING NULLABLE
length_data STRING NULLABLE
weekly_mail_frequency STRING NULLABLE
В них нет дат