如何将dryRun参数发送到pandas.read_gbq函数

时间:2017-09-21 12:55:45

标签: python pandas google-bigquery

我希望在运行它之前从bigquery估计查询大小以加载到pandas数据帧中。 如何将dryRun参数与read_gbq函数一起使用?

1 个答案:

答案 0 :(得分:1)

据我所知,你确实无法这样做。

如果您查看了大熊猫BigQuery Connector的工作原理,您会发现它只会更新作业的query设置。

dryRun在查询定义之外,实际上位于同一级别。

我不确定为什么它的工作方式(也许pandas-gbq的创建者不希望pandas直接替代你可以在BQ中运行的所有类型的工作)。尽管如此,我已经在他们的存储库中启动了这个issue,你可以按照它来查看他们在这个库中的输入。

作为一种可能的解决方法,我建议使用官方python API与GCP进行交互,具体来说,您可以使用BigQuery Client。安装它应该很容易:

pip install --upgrade google-cloud-bigquery

然后你可以跑:

from google.cloud.bigquery import Client
import os
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'path/to/your/key.json'

query = """your query"""
bc = Client()

job = client.run_sync_query(query)
job.use_legacy_sql = False
job.dryRun = True

job.run()

print(job.total_bytes_processed)