【发布时间】:2021-06-03 09:24:56
【问题描述】:
我对 Airflow 很陌生,并开始使用它进行练习,但目前遇到了一个损坏的 DAG,它抱怨找不到“airflow.hooks.dbapi”模块。
下面是我尝试运行的代码 sn-p。
from airflow.models import DAG
from airflow.providers.sqlite.operators.sqlite import SqliteOperator
from datetime import datetime
default_args = {
'start_date': datetime(2020, 1, 1)
}
with DAG('user_processing', schedule_interval='daily',
default_args=default_args,
catchup=False) as dag:
creating_table = SqliteOperator(
task_id='creating_table',
sqlite_conn_id='db_sqlite',
sql='''
CREATE TABLE users (
firstname TEXT NOT NULL,
lastname TEXT NOT NULL,
country TEXT NOT NULL,
username TEXT NOT NULL,
password TEXT NOT NULL,
email TEXT NOT NULL PRIMARY KEY,
);
'''
)
我从 Airflow UI 收到以下错误:
Broken DAG: [/home/airflow/airflow/dags/user_processing.py] Traceback (most recent call
last):
File "/home/airflow/sandbox/lib/python3.8/site-
packages/airflow/providers/sqlite/operators/sqlite.py", line 21, in <module>
from airflow.providers.sqlite.hooks.sqlite import SqliteHook
File "/home/airflow/sandbox/lib/python3.8/site-
packages/airflow/providers/sqlite/hooks/sqlite.py", line 21, in <module>
from airflow.hooks.dbapi import DbApiHook
ModuleNotFoundError: No module named 'airflow.hooks.dbapi'
所以我尝试如下修改导入语句,但仍然没有成功。
from airflow.models import DAG
from airflow.providers.sqlite.hooks.sqlite import SqliteHook
from airflow.providers.sqlite.operators.sqlite import SqliteOperator
有解决问题的想法或解决方案吗?我正在使用 Airflow 版本 = 2.0.0b3 和 python = 3.8.5。 我确实尝试过查看here 和here,但运气不佳。
【问题讨论】:
-
你为什么使用测试版?使用最新的稳定版本 Airflow 2.1.0。
-
@Elad Good say 升级了 Airflow 版本,问题消失了。我将提供讲师使用测试版更新他提到的课程。
标签: sqlite airflow-scheduler airflow