[英]Insert a row in to google BigQuery table from the values of a python list
我是一個正在探索 Google BigQuery 的新手。 我想從包含行值的 python 列表向 BigQuery 表中插入一行。
更具體地說,我的列表如下所示:[100.453, 108.75, 50.7773]
我從BigQuery-Python 庫插入中找到了一些提示,還查看了pandas bigquery writer,但不確定它們是否適合我的用例。
更好的解決方案是什么?
提前致謝。
要使用 Python 使用 Google Cloud Platform 服務,我建議使用python google-cloud和 BigQuery 的子模塊google-cloud-bigquery (這也是@polleyg 推薦的。這是一個開源 Python 慣用客戶端,由谷歌。這將使您能夠以簡單且一致的方式輕松使用所有谷歌雲服務。
更具體地說, 文檔中將Insert rows into a table's data
下的示例展示了如何將 Python 元組/列表插入 BigQuery 表。
但是,根據您的需要,您可能需要其他選項,我對選項的排序:
有很多資源,但我通常發現代碼示例是最有用的開始。
這里有一個很好的 bigquery python 代碼示例集合: https : //github.com/googleapis/python-bigquery/tree/master/samples 。
插入行的一種直接方法:
from google.cloud import bigquery
bq_client = bigquery.Client()
table = bq_client.get_table("{}.{}.{}".format(PROJECT, DATASET, TABLE))
rows_to_insert = [{u"COL1": 100.453, u"COL2": 108.75, u"COL3": 50.7773}, {u"COL1": 200.348, u"COL2": 208.29, u"COL3": 60.7773}]
errors = bq_client.insert_rows_json(table, rows_to_insert)
if errors == []:
print("success")
最后驗證是否插入成功使用:
bq query --nouse_legacy_sql 'SELECT * FROM `PROJECT.DATASET.TABLE`'
希望對大家有幫助!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.