gpt4 book ai didi

python - 还有其他方法可以连接到 Airflow 中的 Google 表格吗?

转载 作者:行者123 更新时间:2023-12-05 02:32:53 26 4
gpt4 key购买 nike

我正在尝试使用 Python Operator 连接到 Airflow 中的 Google 表格,如下所示

import pandas as pd
import pygsheets
from google.oauth2 import service_account
from airflow.operators.python import PythonOperator

def estblsh_conn_to_gs():

creds = service_account.Credentials.from_service_account_file(
'service_account_json_file',
scopes=('google_api_spreadsheets_auth_link', 'google_api_gdrive_auth_link'),
subject='client_mail'
)

pg = pygsheets.authorize(custom_credentials=creds)
return pg

def get_data_from_spreadsheet(spreadsheet_link, worksheet_title):

pg = establish_conn_to_gs()
doc = pg.open_by_url('spreadsheet_link')
data = doc.worksheet_by_title('worksheet_name').get_all_values(include_tailing_empty_rows=False)
return data

get_data_from_gs = PythonOperator(
task_id = 'get_data_from_gs',
python_callable = get_data_from_spreadsheet(link, title)
)

这工作正常,但也许有任何替代方法可以做到这一点?我找到了 Google Sheets Operator 但当前是 tech doc不好(

感谢您的帮助!

最佳答案

Airflow 有 GSheetsHook通过谷歌云连接与谷歌表格交互(如果你没有定义连接,你可以按照这个 doc )

要从 Google 表格中获取数据,只需使用 Hook 。无需自己实现它 - 如果功能不是您所需要的,那么您可以从 Hook 继承并增强它。

要获取值,您可以使用:

get_values - 从单个范围 (API) 中获取 Google 表格中的值

batch_get_values - 从范围列表 (API) 中获取来自 Google 表格的值

例子:

from airflow.providers.google.suite.hooks.sheets import GSheetsHook
from airflow.operators.python import PythonOperator

def get_data_from_spreadsheet():
hook = GSheetsHook(
gcp_conn_id="google_conn_id",
)
spreadsheet = hook.get_values(spreadsheet='name', range='my-range' )
#spreadsheet is list of values from your spreadsheet.
#add the rest of your code here.


get_data_from_gs = PythonOperator(
task_id = 'get_data_from_gs',
python_callable = get_data_from_spreadsheet(link, title)
)

关于python - 还有其他方法可以连接到 Airflow 中的 Google 表格吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71111885/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com