【发布时间】:2020-01-31 23:04:58
【问题描述】:
我的 Python 代码是这样的:
from google.cloud import bigquery
client = bigquery.Client(
project='my-project',
credentials=credentials,
)
sql = '''
CREATE OR REPLACE TABLE `my-project.my_dataset.test` AS
WITH some_table AS (
SELECT * FROM `my-project.my_dataset.table_1`
),
some_other_table AS (
SELECT id, some_column FROM my-project.my_dataset.table_2
)
SELECT * FROM some_table
LEFT JOIN some_other_table ON some_table.unique_id=some_other_table.id
'''
query_job = client.query(sql)
query_job.result()
查询在 Google BigQuery 控制台 UI 中有效,但在从 Python 执行上述操作时无效。
我知道通过使用 CREATE OR REPLACE 这是一个“DDL”请求,我无法从 Python 库中弄清楚如何执行该请求。您可以在 job.config 中设置目标表,这使您可以创建表,但是您无法获得 CREATE OR REPLACE 功能。
感谢您的帮助。
【问题讨论】:
-
这在什么方面“不起作用”?您是否收到某种错误消息?你想如何或在哪里运行它?
-
你使用什么版本的 Python 库?旧版本默认使用 Legacy SQL 方言,因此您可能需要升级或在客户端属性中指定标准 SQL。