create a table and query the value of this table using Python API in Bigquery

时间:2017-12-18 05:37:33

标签: python google-bigquery

I want to create a new table and assign the value of this table by writing a query.

from google.cloud import bigquery

bigquery_client = bigquery.Client(project="myproject")
dataset = bigquery_client.dataset("mydataset")
table_ref = dataset.table('New table')
table = bigquery.Table(table_ref)
table = client.create_table(table)

So, I created an empty table

And now I wish to have some values for this table from another table that's called "Old Table":

query = "SELECT * FROM `{Old table}`"

How can I make sure that my table is linked to this query?

I tried

table.view_query = "SELECT * FROM `{Old table}`" 

but it didn't work

Thanks,

1 个答案:

答案 0 :(得分:1)

I think you should use smth like this:

bigquery_client = bigquery.Client(project="myproject")
dataset = bigquery_client.dataset("mydataset")
table_ref = dataset.table('New_table')

sql_query = "SELECT * FROM `{project}.{dataset}.{table}`"

job_config = bigquery.QueryJobConfig()

# Set configuration.query.destinationTable
job_config.destination = table_ref

# Set configuration.query.createDisposition
job_config.create_disposition = 'CREATE_IF_NEEDED'

# Set configuration.query.writeDisposition
job_config.write_disposition = 'WRITE_APPEND'

# Start the query
job = bigquery_client.query(sql_query, job_config=job_config)

# Wait for the query to finish
job.result()