У меня есть фрейм данных pandas, и я хочу создать на его основе таблицу BigQuery. Я понимаю, что есть много сообщений об этом вопросе, но все ответы, которые я могу найти до сих пор, требуют явного указания схемы каждого столбца. Например:
from google.cloud import bigquery as bq
client = bq.Client()
dataset_ref = client.dataset('my_dataset', project = 'my_project')
table_ref = dataset_ref.table('my_table')
job_config = bq.LoadJobConfig(
schema=[
bq.SchemaField("a", bq.enums.SqlTypeNames.STRING),
bq.SchemaField("b", bq.enums.SqlTypeNames.INT64),
bq.SchemaField("c", bq.enums.SqlTypeNames.FLOAT64),
]
)
client.load_table_from_dataframe(my_df, table_ref, job_config=job_config).result()
Однако иногда у меня есть фрейм данных из многих столбцов (например, 100 столбцов), действительно нетривиально указать все столбцы. Есть ли способ сделать это эффективно?
Кстати, я нашел этот пост с похожим вопросом: Эффективно записать Pandas фрейм данных в Google BigQuery Но похоже, что bq.Schema.from_dataframe
не существует :
AttributeError: module 'google.cloud.bigquery' has no attribute 'Schema'