从pandas dataframe中创建一个BigQuery表,而不需要显式地指定模式。
从pandas dataframe中创建一个BigQuery表,而不需要显式地指定模式。
我有一个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列),显式指定所有列非常麻烦。有没有一种高效的方法来解决这个问题?
顺便说一句,我在这个帖子中找到了类似的问题:Efficiently write a Pandas dataframe to Google BigQuery
但似乎bq.Schema.from_dataframe
不存在:
AttributeError: module 'google.cloud.bigquery' has no attribute 'Schema'