如何将 Pandas 数据框直接上传到 BigQuery?

Mar*_*res 2 pandas google-cloud-storage google-bigquery google-cloud-platform google-colaboratory

我一直在使用 Pandas 来格式化数据帧,然后将其转换为 CSV,然后手动上传到 BigQuery(根据大小,我之前上传到 Cloud Storage)。

我经常使用 Google Colaboratory 作为我的笔记本 UI。

是否可以通过直接从 Pandas 上传到 BQ/CS 来简化流程?如何?

Sou*_*hra 8

您可以使用load_table_from_dataframe将数据从 Pandas 加载到 BigQuery:

bigqueryClient = bigquery.Client()
tableRef = bigqueryClient.dataset("bq-dataset").table("bq-table")
bigqueryJob = bigqueryClient.load_table_from_dataframe(dataFrame, tableRef)
bigqueryJob.result()
Run Code Online (Sandbox Code Playgroud)


Pen*_*m10 5

您可以利用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')
Run Code Online (Sandbox Code Playgroud)