хотите загрузить файл в s3, используя apache airflow [DAG] file - PullRequest
0 голосов
/ 10 марта 2020

Я хочу создать файл DAG (apache airflow) для загрузки файла rar в корзину s3, который вы пробовали. Пожалуйста,

, и я попробовал эти вещи на моем DAG-файле, но там появляется какая-то ошибка

from airflow.operators import SimpleHttpOperator, HttpSensor,   , EmailOperator, S3KeySensor

Ошибка

/ usr / local / lib / python3 .6 / dist-packages / airflow / utils / helpers.py: 439: Предупреждение об уничтожении: Импорт SimpleHttpOperator непосредственно из «airflow.operators» устарел. Пожалуйста, импортируйте из «airflow.operators. [Operator_module]». Поддержка прямого импорта будет полностью исключена в Airflow 2.0.

DeprecationWarning) /usr/local/lib/python3.6/dist-packages/airflow/utils/helpers.py:439: DeprecationWarning: Импорт «HttpSensor» непосредственно из «airflow.operators» устарел. Пожалуйста, импортируйте из «airflow.operators. [Operator_module]». Поддержка прямого импорта будет полностью исключена в Airflow 2.0.

DeprecationWarning) /usr/local/lib/python3.6/dist-packages/airflow/utils/helpers.py:439: DeprecationWarning: Импорт 'EmailOperator' непосредственно из 'airflow.operators' устарел. Пожалуйста, импортируйте из «airflow.operators. [Operator_module]». Поддержка прямого импорта будет полностью исключена в Airflow 2.0.

, как решить эту проблему .?

1 Ответ

1 голос
/ 11 марта 2020

Это просто предупреждение, а не ошибка. A DeprecationWarning обычно намекает на то, что что-то, что вы делаете, будет работать сейчас, но может сломаться в будущих версиях. Если ваша задача не выполняется, проигнорируйте эти сообщения и найдите правильную ошибку.

Код для операторов всегда находился в airflow.operators.[operator_module], но он также был сделан доступным в airflow.operators напрямую для удобства. Например, SimpleHttpOperator определено в https://github.com/apache/airflow/blob/1.10.9/airflow/operators/http_operator.py, поэтому его импорт из airflow.operators.http_operator определенно будет работать. Однако импорт из airflow.operators также будет работать из-за кода, который в настоящее время существует в https://github.com/apache/airflow/blob/1.10.9/airflow/operators/ init .py # L97-L99 , по крайней мере, на данный момент в вашей текущей версии воздушного потока. По сути, вы можете устранить эти предупреждения, обновив свой импорт следующим образом:

from airflow.operators.http_operator import SimpleHttpOperator
from airflow.operators.email_operator import EmailOperator
from airflow.sensors.http_sensor import HttpSensor
from airflow.sensors.s3_key_sensor import S3KeySensor

Просто заголовки, в настоящее время только в основной ветке, еще нет ни в одной выпущенной версии, некоторые сторонние операторы и датчики также были перемещены снова. Например, S3KeySensor будет найдено в providers.amazon.aws.sensors.s3_key.py. Как и ожидалось, при импорте из «старого» пути вы получите аналогичное сообщение об устаревании, https://github.com/apache/airflow/blob/97a429f9d0cf740c5698060ad55f11e93cb57b55/airflow/sensors/s3_key_sensor.py#L25 -L28 .

...