【发布时间】: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.context或kedro.framework.cli,则需要为kedro.context、kedro.cli,因为它们在 0.15.9 中不存在。不过,我会在新版本完成时通知您:)