gpt4 book ai didi

python-3.x - 无法在 BigQuery 中使用 DML 语句在作业中设置目标表

转载 作者:行者123 更新时间:2023-12-02 14:51:26 25 4
gpt4 key购买 nike

我正在编写 Python 代码以使用 bigquery.Client.query 执行 BigQuery sql 命令。我收到无法在使用 DML 语句的作业中设置目标表异常。

下面是我使用的Python代码

if query_file_name:
with open(query_file_name, mode="r") as query_file:
query = query_file.read()

job_config = bigquery.QueryJobConfig()
job_config.use_legacy_sql = use_legacy_sql

if destination:
if destination.partitioned_field:
job_config.time_partitioning = TimePartitioning(type_=TimePartitioningType.DAY,
field=destination.partitioned_field)
google_bq_table = self.fetch_table_reference(destination)
job_config.destination = google_bq_table

job_config.write_disposition = WriteDisposition.WRITE_APPEND

query_job = self.google_client.query(query, job_config=job_config) # API request - starts the query asynchronously

我有如下 BigQuery sql 中的 query_file

INSERT mydataset.target_table
(col1, col2, col3, created_date)
WITH T AS (SELECT col1, col2, col3, CURRENT_DATE() as created_date
from mydataset.temp_table
)
SELECT col1, col2, col3, created_date FROM T

提前感谢您的帮助

谢谢,

拉古纳特。

最佳答案

Cannot set destination table in jobs with DML statements

作为 BigQuery 错误消息中的统计信息,您无法在运行插入命令时在 python 代码目标对象中进行设置。

删除这行

if destination:
if destination.partitioned_field:
job_config.time_partitioning = TimePartitioning(type_=TimePartitioningType.DAY,
field=destination.partitioned_field)
google_bq_table = self.fetch_table_reference(destination)
job_config.destination = google_bq_table

从您的代码将解决您的问题

关于python-3.x - 无法在 BigQuery 中使用 DML 语句在作业中设置目标表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55511304/

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