此错误通常是由于使用了INSERT、UPDATE或DELETE语句时尝试设置写入模式而引起的。解决此错误的方法是在写入作业中删除写入模式,并将该作业设置为'DML”。以下是一个代码示例:
# 导入必要的库
from google.cloud import bigquery
# 创建客户端对象
client = bigquery.Client()
# 构建DML查询语句
query = """
UPDATE dataset.table
SET column = value
WHERE condition
"""
# 创建查询作业
job_config = bigquery.QueryJobConfig()
# 设置作业的DML模式
job_config.dml_mode = "write_truncate"
# 运行查询作业
query_job = client.query(query, job_config=job_config)
在上面的代码示例中,我们创建了一个DML查询作业,并使用write_truncate
模式将其设置为写入操作。请注意,我们删除了常规的写入模式设置,并改为使用job_config.dml_mode
来设置DML模式。这将确保我们不会再看到'Cannot set write disposition in jobs with DML statements”这样的错误。