【问题标题】:kedro-airflow creates DAGs that throw errorskedro-airflow 创建抛出错误的 DAG
【发布时间】:2020-06-19 17:52:06
【问题描述】:

我正在使用 kedro-airflow 为气流创建 DAG,但创建的 DAG 引发错误(见下文)。该流程只是一个测试流程 - 非常简单 - 使用 kedro 运行它运行时不会出错。 Airflow 也可以毫无问题地运行其他 DAGS。

    /home/ubuntu/anaconda3/envs/kedro-environment/lib/python3.7/site-packages/fsspec/implementations/local.py:33: FutureWarning: The default value of auto_mkdir=True has been deprecated and will be changed to auto_mkdir=False by default in a future release.
  FutureWarning,
2020-06-19 15:29:56,812 - airflow.models.dagbag.DagBag - ERROR - Failed to import: /home/ubuntu/airflow/dags/b_dag.py
Traceback (most recent call last):
  File "/home/ubuntu/anaconda3/envs/kedro-environment/lib/python3.7/site-packages/airflow/models/dagbag.py", line 236, in process_file
    m = imp.load_source(mod_name, filepath)
  File "/home/ubuntu/anaconda3/envs/kedro-environment/lib/python3.7/imp.py", line 171, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 696, in _load
  File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 728, in exec_module
  File "<frozen importlib._bootstrap>", line 219, in _call_with_frames_removed
  File "/home/ubuntu/airflow/dags/b_dag.py", line 98, in <module>
    runner.run(pipeline, data_catalog)
  File "/home/ubuntu/anaconda3/envs/kedro-environment/lib/python3.7/site-packages/kedro/runner/runner.py", line 97, in run
    if self._is_async:
AttributeError: 'AirflowRunner' object has no attribute '_is_async'

有人知道为什么会这样吗?

谢谢!

  • 使用的 Kedro-Airflow 插件版本:0.2.2
  • 气流版本:1.10.10
  • 使用的 Kedro 版本(pip show kedro 或 kedro -V):0.16.2
  • 使用的 Python 版本(python -V):3.7.7
  • 操作系统和版本:macOS 版本 10.15.5 和 Ubuntu 18.04.4 LTS

【问题讨论】:

  • 我相信这个错误已经在github.com/quantumblacklabs/kedro-airflow/pull/54 中修复了,但是修复还没有发布。让我在下周初这样做。与此同时(如果你不能等到下周),一个直接的解决方法是使用 Kedro 0.15.9,因为在 Kedro 0.16.0 中引入了is_async
  • 谢谢@921Kiyo !我将尝试使用 kedro 0.15.9 并让您知道是否解决了问题。另外,我还有另一个问题,您可以帮忙吗?究竟是什么“Kedro-Airflow 不支持需要 Spark 的数据集”。方法?不支持 Spark 数据集?如果我使用它们,我不能使用 kedro-airflow 吗?谢谢!
  • 是的,这意味着不支持 SparkDataSet。我们的任务是调查/验证 SparkDataSet 和 Airflow 的哪些案例不起作用(因此它可能会起作用),但我们还没有机会在代码库中对其进行测试,因为 Kedro-Airlfow 的开发已被搁置到 Kedro 方面的更高优先级。
  • 再次感谢。我刚刚尝试使用 Kedro 0.15.9 但没有成功 - ModuleNotFoundError: No module named 'kedro.framework' 。我想我会等待那个版本并在它完成后用 0.16 再试一次
  • kedro.framework 也在 0.16.0 中引入。如果您的项目中有任何导入路径,如 kedro.framework.contextkedro.framework.cli,则需要为 kedro.contextkedro.cli,因为它们在 0.15.9 中不存在。不过,我会在新版本完成时通知您:)

标签: python kedro


【解决方案1】:

如果您正在寻找替代品。查看Ploomber,它是一个轻量级框架,还可以将 DAG 导出到Airflow、Kubernetes、AWS 和 SLURM。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-09-19
    • 2019-05-02
    • 1970-01-01
    • 2018-08-05
    • 1970-01-01
    • 2021-03-03
    • 2022-10-13
    • 1970-01-01
    相关资源
    最近更新 更多