BigQueryPython客户端:使用表描述从查询创建表

BigQueryPython客户端:使用表描述从查询创建表,python,google-bigquery,Python,Google Bigquery,我正在使用python客户端通过SQL创建表,如文档中所述: 除了用于通过SQL查询创建表的客户机函数使用了一个job_config对象,而job_config接收的是一个table_ref,而不是table对象之外,这种方法工作得很好 我在这里找到了用于创建表的文档,其说明如下:,但这是用于非通过查询创建的表 在指定表的描述时,如何从查询创建表 由于您不只是想将选择结果保存到新表中,因此最好的方法不是在job_config变量中使用目标表,而是使用CREATE命令 因此,您需要做两件事: 从代

我正在使用python客户端通过SQL创建表,如文档中所述:

除了用于通过SQL查询创建表的客户机函数使用了一个job_config对象,而job_config接收的是一个table_ref,而不是table对象之外,这种方法工作得很好

我在这里找到了用于创建表的文档,其说明如下:,但这是用于非通过查询创建的表


在指定表的描述时,如何从查询创建表

由于您不只是想将选择结果保存到新表中,因此最好的方法不是在job_config变量中使用目标表,而是使用CREATE命令

因此,您需要做两件事:

从代码中删除以下两行 table_ref=client.datasetdataset_id.table'your_table_id' 作业\配置.destination=表\参考 将您的SQL替换为 标准SQL 创建表数据集\u id。您的\u表\u id 按日期分区\u分区时间 选择权 description='此表是通过代理123创建的' 像 选择语料库 来自“bigquery-public-data.samples.shakespeare”` 按语料库分组;
你看到了吗?orcaman不确定你想做什么,当你设置一个目标表时,它与创建是等价的,你不能在同一事务中创建目标表。您能澄清一下您的用例吗。@ElliottBrossard没有帮助,我必须使用python客户端automation@TamirKlein正如我所写的,我需要从查询中创建这一部分,另外,为生成的表附加一个描述。这一部分在python客户机中似乎是不可能的。例如,这个表是通过代理123创建的,您可以使用Python客户机发出DDL查询,正如Tamir在回答中所示。
# from google.cloud import bigquery
# client = bigquery.Client()
# dataset_id = 'your_dataset_id'

job_config = bigquery.QueryJobConfig()
# Set the destination table
table_ref = client.dataset(dataset_id).table('your_table_id')
job_config.destination = table_ref
sql = """
    SELECT corpus
    FROM `bigquery-public-data.samples.shakespeare`
    GROUP BY corpus;
"""

# Start the query, passing in the extra configuration.
query_job = client.query(
    sql,
    # Location must match that of the dataset(s) referenced in the query
    # and of the destination table.
    location='US',
    job_config=job_config)  # API request - starts the query

query_job.result()  # Waits for the query to finish
print('Query results loaded to table {}'.format(table_ref.path))