Предложение другого подхода
Для экспорта таблицы
Поскольку вы хотите экспортировать все содержимое таблицы в формате CSV, я бы посоветовал вам использоватьВыдержкаОн предназначен для отправки содержимого таблицы в облачное хранилище Google в формате CSV или JSON.Вот хороший пример из документов:
destination_uri = 'gs://{}/{}'.format(bucket_name, 'shakespeare.csv')
dataset_ref = client.dataset(dataset_id, project=project)
table_ref = dataset_ref.table(table_id)
extract_job = client.extract_table(
table_ref,
destination_uri,
# Location must match that of the source table.
location='US') # API request
extract_job.result() # Waits for job to complete.
print('Exported {}:{}.{} to {}'.format(
project, dataset_id, table_id, destination_uri))
Для запроса
Панды имеет функцию read_gbq длязагрузить результат запроса в DataFrame.Если результат запроса помещается в память, вы можете использовать это, а затем вызвать to_csv () для результирующего DataFrame.Для этого обязательно установите пакет pandas-gbq.
Если результат запроса слишком большой, добавьте место назначения в свой QueryJobConfig, чтобы он записывал в Google Cloud Storage.
Ответ наВаш вопрос
Вы могли бы просто использовать форматирование строки:
query = """
SELECT *
FROM `bigquery-public-data.ethereum_blockchain.blocks`
WHERE some_column = {}
LIMIT {}
"""
query_job = client.query(query.format(desired_value, number_lines))
(Это помещает требуемый_значение в WHERE и число_линей в LIMIT)
Если вы хотите использовать скалярПараметры запроса, вам нужно создать конфигурацию задания:
my_config = bigquery.job.QueryJobConfig()
my_config.query_parameters = params # this is the list of ScalarQueryParameter's
client.query(query, job_config=my_config)