Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Google BigQuery Python库创建或替换表_Python_Google Bigquery - Fatal编程技术网

使用Google BigQuery 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

我的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()
该查询在GoogleBigQuery控制台UI中工作,但在Python中执行时不起作用

我知道通过使用CREATE或REPLACE,这是一个“DDL”请求,我不知道如何从Python库执行它。您可以在job.config中设置目标表,它允许您创建一个表,但是您无法获得创建或替换功能


感谢您的帮助。

仔细阅读文档后,我可以说
pythonsdk
for
BigQuery
没有指定将
DDL
语句作为查询执行的方法。您可以找到正在使用的
查询
功能的文档化代码。如您所见,
query
参数需要一个
SQL
语句

尽管如此,我试图重现你的问题,它对我有效。通过使用
DDL
语句,我可以完美地创建表,正如您所尝试的那样。因此,我们可以得出结论,API考虑DDL作为SQL的子集。
我建议您对收到的错误进行评论,以便我能为您提供更好的支持。

这在什么方面“不起作用”?你收到什么错误信息了吗?您试图如何或在哪里运行它?您使用什么版本的Python库?旧版本默认为旧式SQL方言,因此您可能需要升级或在客户端属性中指定标准SQL。