首页 > 解决方案 > 无法使用 JdbcOperator 气流

问题描述

我正在尝试使用 JdbcOperator 连接到配置单元表。我的代码如下:

import datetime as dt
from datetime import timedelta

import airflow
from airflow.models import DAG
from airflow.operators.jdbc_operator.JdbcOperator import JdbcOperator

args = {
    'owner': 'Airflow',
    'start_date': dt.datetime(2020, 3, 24),
    'retries': 1,
    'retry_delay': dt.timedelta(minutes=5),
}

dag_hive = DAG(dag_id="import_hive",default_args=args, schedule_interval= " 0 * * * *",dagrun_timeout=timedelta(minutes=60))
hql_query = """USE testdb;
CREATE TABLE airflow-test-table LIKE testtable;"""
hive_task = JdbcOperator(sql = hql_query, task_id="hive_script_task", jdbc_conn_id="hive_conn_default",dag=dag_hive)

hive_task

我收到错误

ModuleNotFoundError:没有名为“airflow.operators.jdbc_operator.JdbcOperator”的模块;'airflow.operators.jdbc_operator' 不是一个包

我已经交叉检查了 sitepackages 文件夹中的包,它可用。无法弄清楚为什么我会收到此错误。

标签: airflowairflow-scheduler

解决方案


通过运行以下命令安装使用 JDBC 运算符的依赖项:

pip install 'apache-airflow[jdbc]'

然后JdbcOperator像@mk_sta 提到的那样导入你的DAG文件,如下所示:

from airflow.operators.jdbc_operator import JdbcOperator

推荐阅读