我有一个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'
下面是将数据帧加载到BQ的代码片段:
如果您只想指定模式的一个子集,但仍要导入所有列,则可以使用
以下是工作代码:
相关问题 更多 >
编程相关推荐