繁体   English   中英

使用 Google BigQuery Python 库创建或替换表

[英]CREATE OR REPLACE TABLE using the Google BigQuery Python library

我的 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 功能。

感谢您的帮助。

在仔细查看文档后,我可以说BigQueryPython SDK没有指定将DDL语句作为查询执行的方法。 您可以在此处找到您正在使用的query函数的文档化代码。 如您所见, query参数需要一条SQL语句。

尽管如此,我尝试重现您的问题并且它对我有用。 我可以像您一样使用DDL语句完美地创建表。 因此我们可以得出结论,API 将 DDL 视为 SQL 的一个子集。 我建议您评论您收到的错误,以便我可以为您提供更好的支持。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM