从pandas dataframe中创建一个BigQuery表,而不需要显式地指定模式。

6 浏览
0 Comments

从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'

0