如何解决如何将Pandas数据框直接上传到BigQuery?
我一直在使用Pandas格式化数据帧,然后将其转换为CSV,然后才手动上传到BigQuery(取决于大小,我之前曾上传到Cloud Storage)。
我经常使用Google合作实验室作为我的笔记本用户界面。
是否可以通过直接从熊猫上传到BQ / CS来简化流程?怎么样?
解决方法
您可以利用to_gbq
df = pandas.DataFrame(
{
"my_string": ["a","b","c"],"my_int64": [1,2,3],"my_float64": [4.0,5.0,6.0],"my_bool1": [True,False,True],"my_bool2": [False,True,False],"my_dates": pandas.date_range("now",periods=3),}
)
pandas_gbq.to_gbq(df,destination_id = 'dataset.table',project_id='project_id')
,
您可以使用load_table_from_dataframe
将数据从熊猫加载到BigQuery:
bigqueryClient = bigquery.Client()
tableRef = bigqueryClient.dataset("bq-dataset").table("bq-table")
bigqueryJob = bigqueryClient.load_table_from_dataframe(dataFrame,tableRef)
bigqueryJob.result()
,
定义BigQuery数据集 将包含project_id和dataset_id的元组传递给bq.Dataset。
# define a BigQuery dataset
bigquery_dataset_name = ('project_id','dataset_id')
dataset = bq.Dataset(name = bigquery_dataset_name)
定义BigQuery表 将包含project_id,dataset_id和表名的元组传递到bq.Table。
# define a BigQuery table
bigquery_table_name = ('project_id','dataset_id','table_name')
table = bq.Table(bigquery_table_name)
创建数据集/表并在BQ中写入表
# Create BigQuery dataset
if not dataset.exists():
dataset.create()
# Create or overwrite the existing table if it exists
table_schema = bq.Schema.from_data(dataFrame_name)
table.create(schema = table_schema,overwrite = True)
# Write the DataFrame to a BigQuery table
table.insert(dataFrame_name)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。