Невозможно использовать JdbcOperator Airflow - PullRequest
0 голосов
/ 24 марта 2020

Я пытаюсь подключиться к таблице кустов с помощью 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, он доступен. Не могу понять, почему я получаю эту ошибку.

Ответы [ 2 ]

2 голосов
/ 24 марта 2020

Установите зависимости для использования оператора JDB C, выполнив следующую команду:

pip install 'apache-airflow[jdbc]'

, а затем импортируйте JdbcOperator в свой файл DAG, как упомянуто @mk_sta, и следующим образом:

from airflow.operators.jdbc_operator import JdbcOperator
1 голос
/ 24 марта 2020

Правильный способ импорта JdbcOperator () модуля будет следующим:

from airflow.operators.jdbc_operator import JdbcOperator

Имейте в виду, что JDBCOperator также требует зависимого jaydebeapi Python пакета, который должен быть предоставлен в текущей среде воздушного потока.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...