【发布时间】:2019-11-02 12:03:48
【问题描述】:
我正在尝试将 bigquery 查询保存到自定义 Airflow 运算符中的数据框。
我尝试过使用 airflow.contrib.hooks.bigquery_hook 和 get_pandas_df 方法。该任务卡在身份验证上,因为它希望我手动访问一个 url 进行身份验证。
因此,我在身份验证中进行了硬编码。这可行,但绝对不理想。
工作但不理想(凭证是硬编码的):
def execute(self, context):
os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'my-file-location.json'
client = bigquery.Client()
job_config = bigquery.QueryJobConfig()
df = client.query(
self.query,
location="US",
job_config=job_config,).to_dataframe()
不工作:
def execute(self, context):
bq = BigQueryHook(bigquery_conn_id=self.gcp_conn_id, delegate_to=None,use_legacy_sql=True, location='US')
df = bq.get_pandas_df(self.query)
此代码无法进行身份验证。这是日志:[2019-06-19 12:56:05,526] {logging_mixin.py:95} INFO - 请访问此 URL 以授权此应用程序。
【问题讨论】: