Я пытаюсь сохранить запрос BigQuery в кадре данных в пользовательском операторе Airflow.
Я пытался использовать airflow.contrib.hooks.bigquery_hook и метод get_pandas_df.Задача get застревает при аутентификации, так как он хочет, чтобы я вручную посетил 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} ИНФОРМАЦИЯ - Пожалуйста, посетите этот URL, чтобы авторизовать это приложение.