Сломанная группа доступности базы данных: нет модуля с именем «airflow.contrib.gsc_to_gcs» - PullRequest
0 голосов
/ 23 мая 2018

Очень плохо знаком с Airflow / Python и т. Д., Но, похоже, не могу решить, что мне нужно сделать, чтобы решить эту проблему ..

На Puckel / Docker

Full работает поток воздухаошибка:

Сломанный DAG: [/usr/local/airflow/dags/xxxx.py] Нет модуля с именем 'airflow.contrib.operators.gsc_to_gcs'

В коде Python я написал:

из airflow.contrib.operators.gcs_to_gcs import GoogleCloudStorageToGoogleCloudStorageOperator

Полагаю, мне нужно установить модуль gcs_to_gcs,но я не уверен, как это сделать.

Любые конкретные инструкции будут с благодарностью: -)

Ответы [ 2 ]

0 голосов
/ 11 ноября 2018

Я знаю, что это старый вопрос, но я только что попытался использовать этот же оператор и получил то же сообщение, так как Cloud-Composer по-прежнему не поддерживает GoogleCloudStorageToGoogleCloudStorageOperator.

Мне удалось добиться того, что мне было нужно сОбходной путь с использованием простого BashOperator

    from airflow.operators.bash_operator import BashOperator

with models.DAG(
            dag_name,
            schedule_interval=timedelta(days=1),
            default_args=default_dag_args) as dag:

        copy_files = BashOperator(
            task_id='copy_files',
            bash_command='gsutil -m cp <Source Bucket> <Destination Bucket>'
        )

Очень прост, может создавать папки, если вам нужно, и переименовывать файлы.

0 голосов
/ 23 мая 2018

GoogleCloudStorageToGoogleCloudStorageOperator не был доступен в v1.9.0, поэтому вам придется скопировать файл из здесь и связанный хук из здесь и вставить его в папку Airflowв вашей среде Python в соответствующем месте.Выполните следующие действия:

Запустите следующий код, чтобы найти, где Apache Airflow хранится на вашем компьютере:

pip show apache-airflow

, который должен выдать следующий вывод на вашем терминале:

Name: apache-airflow
Version: 2.0.0.dev0+incubating
Summary: Programmatically author, schedule and monitor data pipelines
Home-page: http://airflow.incubator.apache.org/
Author: Apache Software Foundation
Author-email: dev@airflow.incubator.apache.org
License: Apache License 2.0
Location: /Users/kaxil/anaconda2/lib/python2.7/site-packages
Requires: iso8601, bleach, gunicorn, sqlalchemy-utc, markdown, flask-caching, alembic, croniter, flask-wtf, requests, tabulate, psutil, jinja2, gitpython, python-nvd3, sqlalchemy, dill, flask, pandas, pendulum, flask-login, funcsigs, flask-swagger, flask-admin, lxml, python-dateutil, pygments, werkzeug, tzlocal, python-daemon, setproctitle, zope.deprecation, flask-appbuilder, future, configparser, thrift
Required-by:

Путь после Местоположение: это ваш Apache Airflow каталог

Теперь клонируйте git-репо, чтобы получить эти два файла:

# Clone the git repo to `airflow-temp` folder
git clone https://github.com/apache/incubator-airflow airflow-temp

# Copy the hook from the cloned repo to where Apache Airflow is located
# Replace LINK_TO_SITE_PACKAGES_DIR with the path you found above
cp airflow-temp/airflow/contrib/hooks/gcs_hook.py LINK_TO_SITE_PACKAGES_DIR/airflow/contrib/hooks/

# For example: for me, it would be 
cp airflow-temp/airflow/contrib/hooks/gcs_hook.py /Users/kaxil/anaconda2/lib/python2.7/site-packages/airflow/contrib/hooks/

# Do the same with operator file
cp airflow-temp/airflow/contrib/operators/gcs_to_gcs.py LINK_TO_SITE_PACKAGES_DIR/airflow/contrib/operators/

# For example: for me, it would be 
cp airflow-temp/airflow/contrib/operators/gcs_to_gcs.py /Users/kaxil/anaconda2/lib/python2.7/site-packages/airflow/contrib/operators/

Перезапустите Airflow webserver и scheduler, и теперь это должно работать.

...