Мой экземпляр airflow запускается внутри WSL, и я могу без проблем получить доступ к API-серверу и выполнить задачу bash или Python.
Вот даг, который я хочу выполнить
Код: Выделить всё
import pendulum
from airflow.sdk import dag, task
@dag(
schedule=None,
start_date=pendulum.datetime(2025, 2, 23, tz="UTC"),
catchup=False,
tags=["test", "taskflow", "spark"],
)
def jupyter_pipeline():
@task.virtualenv(requirements=["notebook", "apache-airflow-providers-papermill", "scrapbook", "pyspark", "cloudpickle"], venv_cache_path="/tmp/anime_venv")
def read_jupyter_notebook():
"""
#### Read Jupyter Notebook
Task to read a Jupyter Notebook, and execute code inside
"""
from pathlib import Path
if Path("/mnt/c/Users/MyUser/Documents/projects/main.ipynb").exists():
print('file exist')
else :
print('no file')
print("test papermill")
try:
import scrapbook as sb
from airflow.providers.papermill.operators.papermill import PapermillOperator
print('calling papermill')
notebook = PapermillOperator(
task_id="run_anime_main_notebook",
input_nb="/mnt/c/Users/MyUser/Documents/projects/main.ipynb",
output_nb="/mnt/c/Users/MyUser/Documents/projects/out.ipynb",
parameters={"msgs": "Ran from Airflow at {{ logical_date }}!"},
)
print('after call\n')
notebook
output = sb.read_notebook(notebook.output_nb)
print(Path("/mnt/c/Users/MyUser/Documents/projects/out.ipynb").exists())
print(output.scraps['message'])
except Exception as err:
print("failed papermill\n")
print(err)
Поэтому кажется, что записная книжка не выполняется. Как я могу это выполнить?
Подробнее здесь: https://stackoverflow.com/questions/798 ... r-notebook
Мобильная версия