【发布时间】:2021-09-15 15:44:05
【问题描述】:
我正在尝试在我的 Apache Airflow 中添加一个连接以连接到谷歌云,以便使用 BigQueryHook,目前,我的服务帐户 json 文件存储在airflow-projects -> dags -> keys。从Admin -> Connections 中的添加连接,我已经指定
Conn Id = bigquery_default,Conn Type = Google Cloud 和 Keyfile Path=/keys/serviceKey.json。当我运行我的 dag 时,我收到了一个错误
FileNotFoundError: [Errno 2] 没有这样的文件或目录:'/keys/serviceKey.json'
我尝试更改 Keyfile Path=/dags/keys/serviceKey.json* 但仍然收到 FileNotFoundError。我错过了什么?
def get_data_from_bq(**kwargs):
hook = BigQueryHook(bigquery_conn_id='bigquery_default', delegate_to=None, use_legacy_sql=False)
conn = hook.get_conn()
cursor = conn.cursor()
cursor.execute('SELECT owner_display_name, title, view_count FROM `bigquery-public-data.stackoverflow.posts_questions` WHERE creation_date > "2020-09-09" ORDER BY view_count DESC LIMIT 2')
result = cursor.fetchall()
print('result', result)
return result
【问题讨论】:
-
最简单的解决方案是将完整的 JSON 粘贴到 Keyfile JSON 部分。那行得通
标签: google-cloud-platform google-bigquery airflow