使用Google BigQuery Python库创建或替换表
我的Python代码如下所示:使用Google BigQuery Python库创建或替换表,python,google-bigquery,Python,Google Bigquery,我的Python代码如下所示: from google.cloud import bigquery client = bigquery.Client( project='my-project', credentials=credentials, ) sql = ''' CREATE OR REPLACE TABLE `my-projec
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()
该查询在GoogleBigQuery控制台UI中工作,但在Python中执行时不起作用
我知道通过使用CREATE或REPLACE,这是一个“DDL”请求,我不知道如何从Python库执行它。您可以在job.config中设置目标表,它允许您创建一个表,但是您无法获得创建或替换功能
感谢您的帮助。仔细阅读文档后,我可以说
pythonsdk
forBigQuery
没有指定将DDL
语句作为查询执行的方法。您可以找到正在使用的查询
功能的文档化代码。如您所见,query
参数需要一个SQL
语句
尽管如此,我试图重现你的问题,它对我有效。通过使用DDL
语句,我可以完美地创建表,正如您所尝试的那样。因此,我们可以得出结论,API考虑DDL作为SQL的子集。
我建议您对收到的错误进行评论,以便我能为您提供更好的支持。这在什么方面“不起作用”?你收到什么错误信息了吗?您试图如何或在哪里运行它?您使用什么版本的Python库?旧版本默认为旧式SQL方言,因此您可能需要升级或在客户端属性中指定标准SQL。