gpt4 book ai didi

pandas - 如何使用 to_gbq() 将数据帧写入日期分区 BQ 表的特定分区

转载 作者:行者123 更新时间:2023-12-04 13:44:41 25 4
gpt4 key购买 nike

我有一个数据框,我想将其写入日期分区 BQ 表。我正在使用 to_gbq() 方法来做到这一点。我能够替换或附加现有表,但无法使用 to_gbq() 写入表的特定分区

最佳答案

to_gbq()尚不支持它,我创建了一个代码片段,用于使用 BigQuery API 客户端执行此操作。
假设您有一个现有的 date-partitioned像这样创建的表:

CREATE TABLE
your_dataset.your_table (transaction_id INT64, transaction_date DATE)
PARTITION BY
transaction_date
你有一个像这样的数据帧:
import pandas
import datetime

records = [
{"transaction_id": 1, "transaction_date": datetime.date(2021, 10, 21)},
{"transaction_id": 2, "transaction_date": datetime.date(2021, 10, 21)},
{"transaction_id": 3, "transaction_date": datetime.date(2021, 10, 21)},
]

df = pandas.DataFrame(records)
以下是写入特定分区的方法:
from google.cloud import bigquery
client = bigquery.Client(project='your_project')

job_config = bigquery.LoadJobConfig(
# to append use "WRITE_APPEND" or don't pass job_config at all (appending is default)
write_disposition="WRITE_TRUNCATE",
)

# Include target partition in the table id:
table_id = "your_project.your_dataset.your_table$20211021"
job = client.load_table_from_dataframe(df, table_id, job_config=job_config) # Make an API request
job.result() # Wait for job to finish
重要的部分是 $...表 id 中的一部分。它告诉 API 只更新特定的分区。如果您的数据包含属于不同分区的记录,则操作将失败。

关于pandas - 如何使用 to_gbq() 将数据帧写入日期分区 BQ 表的特定分区,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51007968/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com