我正在使用气流 2.0。我正在尝试使用 mac 上的 docker 容器连接到 redshift。
这是我的 dag.py:
from airflow import DAG
from datetime import datetime,timedelta
from airflow.operators.bash import BashOperator
from airflow.operators.python import PythonOperator,BranchPythonOperator
from airflow.providers.jdbc.hooks.jdbc import JdbcHook
#Creating JDBC connection using Conn ID
JdbcConn = JdbcHook(jdbc_conn_id='Redshift_conn')
def getconnection():
JdbcConn.get_connection('Redshift')
print("connected")
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': airflow.utils.dates.days_ago(2),
'email': ['airflow@example.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
with DAG(
dag_id="redshift",default_args=default_args ,schedule_interval="@daily",
catchup=False) as dag:
t1 = PythonOperator(
task_id='getconnection',
python_callable=getconnection
)
Airflow UI 显示此错误,我不知道如何摆脱它。
损坏的 DAG:[/opt/airflow/dags/redshift.py] Traceback(最近一次调用最后一次):文件“”,第 219 行,在 _call_with_frames_removed 文件“/opt/airflow/dags/redshift.py”,第 7 行,在从airflow.providers.jdbc.hooks.jdbc 导入JdbcHook ModuleNotFoundError:没有名为“airflow.providers.jdbc”的模块
任何帮助将不胜感激!!