python - 如何将包含列表的 pandas 数据框上传到 Google BigQuery 数组和结构格式?
问题描述
我想使用 pandas 将数据框推送到具有数组和结构的 BigQuery 表中
Bigquery 表如下所示: col_a (int), col_b (string), col_c.A (struct with Array Subtype0), col_c.B (struct with int subtype)
我有一个看起来像这样的数据框:
col_a(int 类型)、col_b(字符串)、col_c(对象列表)、col_d(int)。
有没有办法将 pandas 数据帧上传到带有结构和数组的 bigquery 表?
解决方案
是的,你可以这么做
import google.cloud
from google.cloud import bigquery
def save_df_to_bq(args,dataframe,csv_name):
print("Length of the incoming dataframe :-->" , len(dataframe))
print(dataframe.iloc[[0]])
client = bigquery.Client()
dataset_ref = client.dataset(dataset_id,project_id)
schema = [
bigquery.SchemaField('col_a ', 'dttype'),
bigquery.SchemaField('col_b ', 'dttype'),
bigquery.SchemaField('col_c ', 'dttype'),
]
acc_table_id = str(random.randint(100000,100000*1000000))
# table_ref = dataset_ref.table(acc_table_id)
# table = bigquery.Table(table_ref, schema=schema)
# table = client.create_table(table) # API request
# print("Table created..")
# acc_table_id = str(random.randint(100000,100000*1000000))
acc_table_ref = client.dataset(dataset_id,project_id).table(acc_table_id)
job = client.load_table_from_dataframe(dataframe, acc_table_ref, location="US")
job.result()
推荐阅读
- angular - angular2如何在未字符串化的div中显示属性值
- rest - 简单(和)脏 Firestore 身份验证规则
- elasticsearch - Couchbase Elasticsearch 连接器保存检查点相同的存储桶
- android - Android Studio Gradle 更新失败并给出项目错误
- makefile - make: *** 没有规则来制作目标“watch_scss”。停止
- mongodb - 将当前日期应用于 MongoDB 聚合中的方程式
- jquery - 显示对话框时设置 AlertifyJS 回调
- odoo - 如何在odoo中的复选框中设置默认值
- xamarin.forms - Vimeo 未在 Xamarin.android 中显示全屏选项
- java - 带有微服务的春季云流